2010-11-02 74 views
0

是否有某种方式可以在Progress 4GL中的网络客户端之间进行发布。通过客户端进行发布订阅4GL

一个(丑)的方式是“发布”(写)到数据库,让所有的客户端轮询数据库 - 但我当然想避免这种情况。

我正在使用Open Progress版本10.0B02。

回答

1

不可以。跨会话边界无法使用内置的PUBLISH和SUBSCRIBE语句。

它是人们不时要求产品管理的那些东西之一,但它似乎从未将其纳入计划功能列表中。

+0

在某种程度上,您可以隐藏处理PUB和SUB的一些通用实用函数背后的“丑陋”。这样可以更容易使用db记录,声波消息,套接字调用等各种间接方法。这也会让你更容易改变你的想法,哪种方法在不同情况下最好。 – 2010-11-02 21:34:24

+0

这就是我所听到的。谢谢你的建议,我会考虑一下。 – 2010-11-04 05:57:05

1

您可以使用像Apache ActiveMQ这样的JMS用于您的目的。发布者将被称为生产者,并且订户将被称为消费者。 ActiveMQ支持STOMP协议;我写了一个开源的OpenEdge ABL framework,它允许您使用STOMP框架在纯ABL中创建生产者或消费者。

+0

谢谢。乍一看,它看起来不错,但我可以看到代码不会在10.0B02中运行,而不是面向对象的。 – 2010-11-17 08:47:28

+0

啊,这太遗憾了。我在工作中坚持使用10.1C,缺乏某些功能,后来的版本有我非常喜欢的功能,所以我感觉到你的痛苦。 – 2010-11-18 00:31:12