caching - 在 tibco bw 中实现缓存
问题描述
在 TIBCO BW 中实现缓存
我需要在 TIBCO BW 中实现缓存/内存。此缓存的内容应该在 BW 项目中可用。
我想要做的是,当我收到一条包含多个发货记录的消息时 - (发货和交货编号是唯一的组合)
如果存在任何这些记录,我需要先检查缓存。如果是 - 拒绝整个 XML 如果不是,则将此数据推送到缓存/内存中。
完成后,我需要调用 SOAP 请求回复外部系统。
在另一个项目中,当收到来自外部系统的确认时,我需要检查消息中的记录,找出缓存中的那些记录并删除它们。
有没有办法做到这一点?
这里的挑战是整个消息没有唯一的密钥。每条装运/交货组合的记录都是唯一的。
这是我在其中尝试和挑战的内容:1)我想将数据放在一个文件中,并将该文件命名为每条消息的 requestID/Key。然后在另一个项目中,检查文件并删除它
但由于我们没有钥匙,我不能那样做。
2)使用共享变量:我相信共享变量不会在 bw 项目中可用。所以,这个选项不可用
3)第三个选项是使用EMS队列,将包含记录的消息暂时停在那里。然后在此搜索,如果记录匹配则拒绝请求。
并且,在确认(另一个项目)中,搜索 ems 消息中的记录并删除该特定消息。
对此的任何帮助将不胜感激。
谢谢
解决方案
为什么不使用数据库或文件来存储记录?因为当你停止或重启或appnode出现问题时,缓存将被清除,你将无法检索未处理的记录。
推荐阅读
- java - 图形不会自动移动,并且在按下箭头键时也会复制而不是移动
- perl - perl 对 return 语句的引用和取消引用
- huawei-mobile-services - HMS Push Kit,getToken() 方法在 Android 9 上不工作
- nativescript - Nativescript 6.5 iOS 挂起事件仅在应用再次激活时触发
- java - 如何从不同 PC 的另一个工作区导入 Java 类文件
- php - 导出 mysql 表和 zipArchive
- mysql - 生成两个日期之间的日期列表
- mongodb - 基于填充字段的虚拟
- laravel - zsh:找不到命令:laravel - 如何修复
- python - ModuleNotFoundError:没有名为“pyodbc”的模块-Azure Batch-Ubuntu