MFP 8.0 适配器缓存

Posted

技术标签:

【中文标题】MFP 8.0 适配器缓存【英文标题】:MFP 8.0 adapter cache 【发布时间】:2017-09-15 03:48:51 【问题描述】:

我正在使用 MFP 8.0,并且有一些要求我们希望在适配器级别实现缓存。

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

您应该在init() 方法中将自定义代码从数据库加载到缓存中。并注意在destroy() 中删除它。

现在在事务访问期间(命中 Resource.java),您引用已创建的缓存。

但是,您的要求可能不适合负载较重的系统。您需要考虑:

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

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

c) 您负责将数据保持在最新级别,并在使用后进行清理。

总而言之,虽然可以,但不推荐。虽然这可能适用于非常小的数据集,但这不能很好地扩展。适配器的设计是为您提供对数据/后端系统的事务访问。您应该按照设计的方式使用适配器。

【讨论】:

以上是关于MFP 8.0 适配器缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MFP 8.0 中的 java 适配器异步调用 javascript 适配器?

来自应用程序的 MobileFirst 8.0 调用适配器正在连接到 localhost:6015/mfp

MobileFirst 8.0 - 从 WLResourceRequest 调用受保护的适配器

MFP 8.0 SECURITY_CHECK_NOT_FOUND

没有客户端组件的基于 IBM MFP 适配器的身份验证

我们可以在 MFP 上注销后使旧的访问令牌失效吗?