MFP 8.0适配器缓存

时间:2017-09-15 03:48:52

标签: ibm-mobilefirst worklight-adapters worklight-server mfp

我使用的是MFP 8.0,我们需要在适配器级别实现缓存。

每当MFP服务器启动时,我们都希望将所有数据库转储到缓存中,直到服务器重新启动。

现在每当用户点击调用数据库的某个事务或适配器过程而不是调用数据库时,它必须从缓存中读取。

2 个答案:

答案 0 :(得分:0)

适配器支持对后端系统的只读和事务访问模式。

  

适配器是Maven项目,包含用Java或JavaScript实现的服务器端代码。适配器用于执行   任何必要的服务器端逻辑,以及传输和检索   从后端系统到客户端应用程序和云的信息   服务。

     

JSONStore 是一个可选的客户端API,提供轻量级,面向文档的存储系统。 JSONStore支持持久存储    JSON文档。应用程序中的文档可用于   即使运行应用程序的设备是JSONStore   离线。这种持久的,始终可用的存储可能很有用   例如,当没有网络时,允许用户访问文档   设备中可用的连接。

答案 1 :(得分:0)

根据您的描述,假设您正在讨论存储数据的某些自定义数据库,那么您需要实现缓存数据的逻辑。

适配器有两个类<AdapterName>Application.java<AdapterName>Resource.java。 &lt;&gt; Application.java包含生命周期方法 - init()destroy()

您应该使用init()方法将自定义数据库中的数据加载到缓存中。并且还要注意在destroy()中删除它。

现在,在事务访问期间(访问&lt;&gt; Resource.java),您将引用已创建的缓存。

然而,您的要求对于负载较重的系统可能并不理想。你需要考虑:

a)您的适配器初始化被延迟。任何错误编写的代码也可能破坏适配器初始化。在初始化请求之前,适配器无法为您的请求提供服务。对于群集环境,所有群集成员中的适配器负载将根据您加载的数据量而延迟。用于此适配器的任何客户端请求都将获得运行时异常,直到初始化完成。

b)将缓存保存在内存中意味着堆中的这么多空间用完了。如果您的数据库不断增长,这会对适配器初始化以及堆使用产生不利影响。

c)您负责维护最新级别的数据,并在使用后进行清理。

总结一下,虽然有可能,但不建议这样做。虽然这可能适用于非常小的数据集,但这不能很好地扩展。适配器的设计是为您提供对数据/后端系统的事务访问。您应该按照设计的方式使用适配器。