WebObjects/EOF/使用 EOF/多个堆栈或实例
外观
这就是 ERXObjectStoreCoordinatorPool 的作用。您需要通过 ERXEC 工厂创建每个 EC 才能使用它。基本上,它会为每个会话分配来自池中的一个 OSC(有关更多信息,请参阅文档和代码)。当您有长时间运行的语句时,这无济于事,因为仍然存在会话被阻塞 - 尽管数量不多。
如果您有长时间运行的程序,那么您应该专门为它们创建一个 OSC 并使用长时间运行的页面。
问题在于同步多个 EOF 堆栈本质上与同步 WebObjects 应用程序的多个实例相同。通常,相同的技巧适用于两者。
我更喜欢数据库是单个应用程序(或使用相同技术构建的一组相关应用程序 - 在我们的例子中是 WO/EOF)的专用存储的架构。因此,如果您需要另一种类型的应用程序来更改数据,请让它通过拥有数据库的应用程序,而不是直接访问数据库。
最近,我参与了一个严重依赖数据库触发器的项目。我们创建了一个名为 CheckInProcessor 的新 WO 应用程序。它侦听端口以获取新数据(使用专有协议)。以前直接将新数据写入数据库的外部应用程序已更改为将数据发送到 CheckInProcessor。CheckInProcessor 将这些新数据写入数据库,执行等效于旧触发器的任务,并通知其他 WO 应用程序任何更改(使用 WONDER 的 EOUpdateNotification 框架)。