我正在使用 MFP 8.0,并且我们希望在适配器级别实现缓存。
每当 MFP 服务器启动时,我们都希望转储缓存中的所有数据库,直到服务器再次重新启动。
现在,每当用户点击一些调用数据库的事务或适配器过程时,它必须从缓存中读取而不是调用数据库。
我正在使用 MFP 8.0,并且我们希望在适配器级别实现缓存。
每当 MFP 服务器启动时,我们都希望转储缓存中的所有数据库,直到服务器再次重新启动。
现在,每当用户点击一些调用数据库的事务或适配器过程时,它必须从缓存中读取而不是调用数据库。
适配器支持对后端系统的只读和事务访问模式。
适配器是包含用 Java 或 JavaScript 实现的服务器端代码的 Maven 项目。适配器用于执行任何必要的服务器端逻辑,并将信息从后端系统传输和检索到客户端应用程序和云服务。
JSONStore是一个可选的客户端 API,提供了一个轻量级的、面向文档的存储系统。JSONStore 支持JSON 文档的持久存储。即使运行应用程序的设备处于脱机状态,应用程序中的文档也可以在 JSONStore 中使用。例如,当设备中没有可用的网络连接时,这种持久的、始终可用的存储对于让用户访问文档很有用。
根据您的描述,假设您正在谈论一些存储数据的自定义数据库,那么您需要实现缓存数据的逻辑。
适配器有两个类<AdapterName>Application.java
和<AdapterName>Resource.java
. <>Application.java 包含生命周期方法 -init()
和destroy()
.
您应该将自定义代码从数据库加载到缓存中的init()
方法中。并且还要注意在destroy()
.
现在在事务访问期间(命中 <>Resource.java),您引用了您已经创建的缓存。
但是,您的要求对于负载较重的系统可能并不理想。你需要考虑:
a) 您的适配器初始化被延迟。任何错误编写的代码也可能破坏适配器初始化。在初始化之前,适配器无法为您的请求提供服务。在集群环境的情况下,所有集群成员中的适配器加载将根据您正在加载的数据量而延迟。在初始化完成之前,针对此适配器的任何客户端请求都将获得运行时异常。
b)将缓存保存在内存中意味着堆中的大量空间已用完。如果您的数据库不断增长,这将对适配器初始化和堆使用产生不利影响。
c) 您负责将数据保持在最新级别,并在使用后进行清理。
总而言之,虽然可以,但不推荐。虽然这可能适用于非常小的数据集,但这不能很好地扩展。适配器的设计是为您提供对数据/后端系统的事务访问。您应该按照设计的方式使用适配器。