在wso2 esb中的临时存储
我遇到了一个需求,在这个需求中我必须使用一个令牌,它将从第三方获取,并且需要在不同的事务中重用此令牌,直到过期。我不想在数据库中保存这个令牌。有什么方法可以将令牌保存在WSO2 ESB的临时存储中,并在需要时重用它,并且我还需要随时以任何逻辑从WSO2 ESB更新它。在wso2 esb中的临时存储
在此先感谢!
问候, 至尊
您可以使用此JS脚本保存全球价值并在不同的交易重用:
<script language="js"><![CDATA[
var curValue = mc.getEnvironment().getServerContextInformation().getProperty("MyValue");
if (curValue == null) {
curValue = 0;
} else {
curValue++;
}
mc.getEnvironment().getServerContextInformation().addProperty("MyValue",curValue);
mc.setProperty("CurrentValue",curValue);
]]></script>
您可以获得当前值中介里用GET属性( “CurrentValue的”)当你关机/重启ESB
感谢Jean&Nicolas! @Jean - 如果我们有多个节点(集群),那么这个属性值对于两个节点都不会相同,我相信。看起来我们在wso2中没有像数据库那样的存储ESB –
确定您在WSO2 ESB中有一个类似于数据库的存储,请查看https://docs.wso2.com/display/CLUSTER44x/Setting+up+the+数据库 –
您可以在注册表中创建,更新和读取值。使用js创建/更新:mc.getConfiguration()。getRegistry()。newResource(“gov:/ trunk/test/MyValue”,false); 。mc.getConfiguration()getRegistry()updateResource( “GOV:/中继/测试/ myvalue的”,0);。用get-property('gov:/ trunk/test/MyValue')读取您的调解内容 –
不知道这是一个好主意,因为你不知何故INTEGR
值丢失吃了一个有状态的逻辑。难道你每次都会在查询中获得令牌,然后尝试验证它,而不是将其存储在“ESB”中。顺便说一下,标记最初是如何设置的?也许你应该看看业务流程服务器 – Nicolas