问题标签 [persistence-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1330 浏览

actionscript-3 - flash builder mobile,正确使用 PersistenceManager?

我是移动应用程序开发的新手,但我正在尝试构建一个移动 RPG 游戏角色表应用程序。我没有使用 SQLite,而是尝试使用 PersistenceManager 在应用程序中断或关闭时保留字符数据,但我不确定我是否正确使用它。这是我到目前为止所拥有的。

主要.mxml:

CharactersView.mxml:

数据库.as:

在 CharactersView.mxml 的 creationComplete 处理程序中,我创建了一个带有一些任意信息的一次性字符,只是为了测试插入字符是否有效。每次我完全按原样运行时,跟踪语句(我的数组的长度)返回 1。每次运行时它不应该加一吗?这告诉我有些不对劲,但持久性管理器是否没有正确保存数据?我是否需要检查 pm.save() 是否返回 true,如果返回 true,我是否应该分派一个事件,然后才运行跟踪语句以获得正确的长度?只是为了保存一些数据,这似乎过于复杂,所以我不完全确定发生了什么或如何修复它。

无论如何,我要问的是我当前的设置是否正确,如果不是,是否有人有一个简单的例子,或者可以根据我的代码创建一个简单的例子来说明如何正确使用persistencemanager?

一旦我掌握了这项技术,我还可以创建其他几个应用程序,所以我真的希望能够确定这一点。提前致谢!

编辑:看来我正在正确使用有关 PM 的所有内容,并且我收到的答案确实帮助我让我的应用程序正常工作。然而,当我继续前进时,我的应用开始表现得很有趣。例如,我的列表似乎对交互的反应非常缓慢,大多数其他组件也是如此。新代码如下。

主要.mxml:

CharactersView.mxml:

数据库.as:

CharacterVO.as:

如您所见,大部分代码与我第一次发布的代码相同。我添加了 CharacterVO 类,我在 CharactersView.mxml 中移动了一些东西,并将 PersistenceManager 加载代码移动到 insertCharacter 函数(这样,我只在添加新项目时加载 PM,而不是每次我调用数据库.字符)。

同样,我的应用程序似乎对交互的反应真的很慢,有时它根本没有反应。有些事情是不对的,我以前从未在移动应用程序上遇到过这个问题。是否将数组存储在 PM 中然后尝试将其设置为 List 的 dataProvider 会导致问题?

0 投票
0 回答
1260 浏览

apache - Tomcat PersistenceManager:设置 minIdleSwap / maxIdleSwap 值的用例是什么?

今天刚了解了tomcat PersistenceManager。我正在研究为什么我的声明式安全模型在配置了 PersistenceManager 的开发和生产服务器上的登录超时 1 分钟,但在其他两个没有配置 PersistenceManager 的服务器上却没有。

我发现将 maxIdleSwap 从“30”更改为“3600”并添加“1800”的 minIdleSwap 会导致超时为 30 分钟,就像我希望的那样(在 web.xml 中设置)。

所以,在试图确定为什么原来的管理员会这样设置时,我做了一些研究,但我无法确定意图是什么。

我想问:希望 Tomcat 会话每 30 秒保存到磁盘有哪些可能的用例?请注意,当 tomcat 关闭并重新启动时,持久性管理器会自动将会话持久化到磁盘(除非您手动告诉它不要这样做)。

也许这会让我对为什么以这种方式设置有一些了解。到目前为止,我对该问题的所有研究都让我相信大多数人都将其设置为默认值,即禁用 min 和 max IdleSwap,尽管我见过一些人们将这些值设置为 0 的情况,这样每个请求导致会话的持久性。

谢谢。

0 投票
0 回答
1603 浏览

apache - Tomcat 持久性管理器终止会话登录

对于我的 Web 应用程序,我使用 tomcat 声明式安全将登录凭据绑定到公司 Active Directory。在我们的两台服务器上,一分钟不活动后登录超时。在另外两台服务器上,有三十分钟的超时(这是我想要的)。

昨天,我找到了问题的原因。具有一分钟超时的两台服务器启用了 tomcat Persistence Manager 以将会话信息写入磁盘。我们的 IT 人员本周外出,所以我不知道他试图用这个完成什么的确切细节,但他在 context.xml 中像这样设置了 PersistenceManager:

我做了一些研究,发现空闲数字以秒为单位。认为这可能是罪魁祸首,我将 Manager 部分更改为:

这解决了我的问题。因此,在 30 秒不活动后强制持久性管理器将会话写入磁盘似乎会杀死我的会话登录。我跟踪了 JSESSIONID cookie,发现即使用户被迫返回登录屏幕,cookie 仍然保持不变。仅当您重新登录时才会更改。这是您所期望的,因为将会话持久保存到磁盘不可能更改会话 ID。但是,它确实会导致我的声明式安全模型强制用户再次登录。

我确实在手册中发现 maxIdleSwap 变量不仅控制持久会话到磁盘,而且还导致“会话钝化超出服务器内存”。这对我来说听起来有点可疑。

有没有人有这个问题的经验?为什么 Persistence Manager 在将会话持久保存到磁盘时会终止我的 Web 应用程序登录?有没有办法在不改变交换控制变量的情况下解决这个问题?

0 投票
2 回答
1409 浏览

google-app-engine - 持久性管理器无法实例化

我有一个使用 gwt 并使用谷歌应用引擎存储我的数据的 Web 应用程序项目。当我运行我的项目时,我收到以下错误:

saat 是我试图存储在我的谷歌应用程序引擎上的一个类。proj 是我的项目的名称。我尝试在服务器包中的 saatServiceImpl 中实例化我的 persistenceManager,如下所示:

这是发出错误的行。我不知道如何解决这个问题。任何提示表示赞赏。

0 投票
1 回答
1098 浏览

java - JDO getObjectById 返回 null,为什么?

我刚开始使用 JDO 和 Google 数据存储

,我有 File 类,其中包含下面的主键代码。

当我在数据存储中使用 ID/Name 值调用此方法时,它给了我错误 - javax.jdo.JDOObjectNotFoundException: Could not retrieve entity of kind File with key File("6298002603900928")
但是当我使用数据存储中的键值时,它会返回预期的文件对象

ID/名称值为 6298002603900928
键值为 agxvcmdhbml6ZS1mcHZyEQsSBEZpbGUYgICAgICAmAsM

我该如何解决这个问题?

我尝试使用此代码将 ID/名称转换为密钥

但它也给了我错误java.lang.IllegalArgumentException: Invalid Key PB: no elements。

0 投票
1 回答
121 浏览

actionscript-3 - Flex Mobile:PersistenceManager 不保存数据(仅在某些 iPad 上)

使用 AS3 和 AIR 14。我有一个函数 (save()) 可以在用户登录后保存用户名,还有一个函数 (get()) 可以在每次重新启动应用程序时获取用户名,这样用户就不必重新登录并且可以离线工作。这适用于我的 iPad 2 和 3,但我有另一台 iPad 3 无法使用。当应用程序完全关闭并重新打开时,不会保留“用户名”。是我的代码还是设备?

所有 3 台设备都装有 iOS 7 并保持最新状态。这个问题几周前才开始出现,并且在所有设备上都运行良好。

例子:

0 投票
0 回答
76 浏览

jdo - 如何更改附加对象的 PersistenceManager?

假设我有 3 个不同的类,A, B& CC旨在具有As 和Bs 的列表。

如果加载As 和Bs 的列表并保持它们的连接,我如何将它们设置为瞬态对象中的列表 C持久化瞬态对象?

问题是每个As 和Bs 列表都由不同的PersistenceManagers管理。因此,如果我尝试使用s 列表(附加,由PersistenceManager管理)和s 列表(附加,由第二个PersistenceManager管理)来持久化瞬态 C对象,我会收到一个异常,指出s 和s 是由不同的PersistenceManager管理。ABAB

有没有一种有效的方法来解决这个问题,而不必由负责持久化对象的PersistenceManagerC再次重新加载所有列表?

0 投票
1 回答
44 浏览

java - 在不关闭 Persistence Manager 的情况下写入数据存储

使用 PersistenceManager 更新对象而不关闭它时如何提交到数据库?

0 投票
1 回答
1773 浏览

jakarta-ee - JPA 级联持续错误与已持久化的实体

我在尝试更新实体时遇到以下错误。这个问题的解决方案是在持久化所有者之前必须持久化“拥有”实体,但我这样做了。或者用级联标记两个实体。

错误(我猜不需要完整的堆栈跟踪):

(如果我添加cascade = CascadeType.ALL我得到另一个错误,告诉我外键不存在,但我只是坚持它。据我了解,如果我以正确的顺序坚持实体,我什至不必使用级联。

)

在这里,我坚持 post(owned) 然后 Thethread(owner):

这是我保留帖子的方法,我使用了flush,因为我认为没有生成帖子ID或smtg:

这是我更新 Thethread 的 lastPost 的方法。我可以将它直接与我之前拉出的那个合并,但如果我这样做了,那么如果 2 个不同的用户观看同一页面并更新线程,我的 upvote 和 downvote 字段将被搞砸:

发布实体:

线程实体:

0 投票
0 回答
55 浏览

flash - 将数据保存到 PersistanceManager 或 SharedObject

错误消息:找不到 spark.managers:PersistenceManager。

我喜欢以这种方式将数据保存在移动应用程序的 adobe flash 动作脚本中。它包含几个计数器和数字。

也许使用本地共享对象是一种更好的方法?