在wso2 esb中的临时存储

在wso2 esb中的临时存储

问题描述:

我遇到了一个需求,在这个需求中我必须使用一个令牌,它将从第三方获取,并且需要在不同的事务中重用此令牌,直到过期。我不想在数据库中保存这个令牌。有什么方法可以将令牌保存在WSO2 ESB的临时存储中,并在需要时重用它,并且我还需要随时以任何逻辑从WSO2 ESB更新它。在wso2 esb中的临时存储

在此先感谢!

问候, 至尊

+0

不知道这是一个好主意,因为你不知何故INTEGR

值丢失吃了一个有状态的逻辑。难道你每次都会在查询中获得令牌,然后尝试验证它,而不是将其存储在“ESB”中。顺便说一下,标记最初是如何设置的?也许你应该看看业务流程服务器 – Nicolas

您可以使用此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

+0

感谢Jean&Nicolas! @Jean - 如果我们有多个节点(集群),那么这个属性值对于两个节点都不会相同,我相信。看起来我们在wso2中没有像数据库那样的存储ESB –

+0

确定您在WSO2 ESB中有一个类似于数据库的存储,请查看https://docs.wso2.com/display/CLUSTER44x/Setting+up+the+数据库 –

+0

您可以在注册表中创建,更新和读取值。使用js创建/更新:mc.getConfiguration()。getRegistry()。newResource(“gov:/ trunk/test/MyValue”,false); 。mc.getConfiguration()getRegistry()updateResource( “GOV:/中继/测试/ myvalue的”,0);。用get-property('gov:/ trunk/test/MyValue')读取您的调解内容 –