問題タブ [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を使用して文字データを永続化しようとしていますが、正しく使用されているかどうかはわかりません。これが私がこれまでに持っているものです。

Main.mxml:

CharactersView.mxml:

Database.as:

CharactersView.mxmlのcreationCompleteハンドラーで、文字の挿入が機能するかどうかをテストするために、任意の情報を使用して1回限りの文字を作成しています。これを完全にそのまま実行するたびに、traceステートメント(配列の長さ)は1を返します。実行するたびに1ずつ上がるべきではありませんか?これは何かが正しくないことを示していますが、persistencemanagerがデータを適切に保存していないのですか?pm.save()がtrueを返すかどうかを確認する必要がありますか?もしそうなら、イベントをディスパッチしてから、トレースステートメントを実行して適切な長さを取得する必要がありますか?一部のデータを保存するだけでは非常に複雑に見えるので、何が起こっているのか、どのように修正するのか完全にはわかりません。

いずれにせよ、私が尋ねているのは、私の現在の設定が正しいかどうかです。正しくない場合、誰かが簡単な例を持っていますか、またはpersistencemanagerを適切に使用する方法について私のコードに基づいて簡単な例を作成できますか?

このテクニックを習得したら、他のいくつかのアプリも作成できるので、これを理解したいと思っています。前もって感謝します!

編集:私はPMに関してすべてを正しく使用しているようで、受け取った回答はアプリを機能させるのに役立ちました。しかし、前進すると、私のアプリはおかしな動作を始めました。たとえば、私のリストは、他のほとんどのコンポーネントと同様に、相互作用に対して非常にゆっくりと反応するようです。以下の新しいコード。

Main.mxml:

CharactersView.mxml:

Database.as:

CharacterVO.as:

ご覧のとおり、ほとんどのコードは私が最初に投稿したものと同じです。CharacterVOクラスを追加し、CharactersView.mxmlでいくつかを移動し、PersistenceManager読み込みコードをinsertCharacter関数に移動しました(このように、新しいアイテムが追加されるたびにのみPMを読み込み、呼び出すたびにではありません) Database.characters)。

繰り返しになりますが、私のアプリはインタラクションに対して非常にゆっくりと反応するようですが、まったく反応しない場合もあります。何かが正しくありません。これまでモバイルアプリでこの問題が発生したことはありません。配列をPMに格納してから、それをリストのdataProviderとして設定しようとすると、問題が発生する可能性がありますか?

0 投票する
0 に答える
1260 参照

apache - Tomcat PersistenceManager: minIdleSwap / maxIdleSwap 値を設定するユースケースは何ですか?

今日、Tomcat PersistenceManager について学びました。PersistenceManager が構成されている dev および prod サーバーで 1 分後に宣言型セキュリティ モデルがログインをタイムアウトさせたが、PersistenceManager が構成されていない他の 2 つのサーバーではタイムアウトしなかった理由を調査していました。

maxIdleSwap を「30」から「3600」に変更し、「1800」の minIdleSwap を追加すると、タイムアウトが希望どおりに 30 分になることがわかりました (web.xml で設定)。

そのため、元の管理者がこのように設定した理由を特定しようとして、いくつかの調査を行いましたが、意図が何であったかを判断できません.

質問したいのですが、Tomcat セッションを 30 秒ごとにディスクに永続化するには、どのようなユースケースが考えられますか? tomcat がシャットダウンして再起動すると、Persistence Manager は自動的にセッションをディスクに永続化することに注意してください (手動で永続化しないように指示しない限り)。

おそらく、これにより、このように設定された理由についての洞察が得られるでしょう。これまでのところ、この問題に関する私のすべての調査から、ほとんどの人がこれをデフォルトで設定し、最小および最大の IdleSwap を無効にしていると信じています。要求により、セッションが永続化されます。

ありがとう。

0 投票する
0 に答える
1603 参照

apache - Tomcat Persistence Manager がセッション ログインを強制終了する

私の Web アプリでは、Tomcat 宣言型セキュリティを使用して、ログイン資格情報を会社の Active Directory に関連付けています。2 つのサーバーでは、1 分間操作がないとログインがタイムアウトになりました。他の 2 つのサーバーでは、30 分間のタイムアウトがあります (これが必要です)。

昨日、私は問題の原因を見つけました。タイムアウトが 1 分の 2 つのサーバーでは、Tomcat Persistence Manager が有効になっており、セッション情報をディスクに書き込むことができます。私たちの IT 担当者は今週不在なので、彼がこれで何を達成しようとしていたのか正確な詳細はわかりませんが、彼は context.xml で次のように PersistenceManager を設定していました。

いくつかの調査を行ったところ、アイドル数が秒単位であることがわかりました。それが原因かもしれないと考えて、マネージャーの部分を次のように変更しました。

これで問題が解決しました。そのため、30 秒間非アクティブになった後に Persistence Manager に強制的にセッションをディスクに書き出させると、セッション ログインが強制終了されたようです。JSESSIONID Cookie を追跡したところ、ユーザーが強制的にログイン画面に戻った後も Cookie が同じままであることがわかりました。再ログインするだけで変わります。セッションをディスクに永続化してもセッション ID を変更できない可能性があるため、これは当然のことです。ただし、宣言型セキュリティ モデルでは、ユーザーが再度ログインする必要があります。

maxIdleSwap 変数は、ディスクへのセッションの永続化を制御するだけでなく、「サーバー メモリからのセッションのパッシベーション」も引き起こすことがマニュアルでわかりました。これは私には少し疑わしいように聞こえます。

誰もこの問題の経験がありますか? Persistence Manager がセッションをディスクに永続化するときに Web アプリのログインを強制終了するのはなぜですか? 私のようにスワップ制御変数を変更せずにこれを回避する方法はありますか?

0 投票する
2 に答える
1409 参照

google-app-engine - 永続性マネージャーがインスタンス化に失敗する

gwtを使用し、GoogleAppEngineを使用してデータを保存するWebアプリケーションプロジェクトがあります。プロジェクトを実行すると、次のエラーが発生します。

saatは、GoogleAppEngineに保存しようとしているクラスです。projは私のプロジェクトの名前です。次のように、サーバーパッケージのsaatServiceImplでpersistenceManagerをインスタンス化しようとしています。

これは、エラーが発行された行です。この問題を解決する方法がわかりません。ヒントをいただければ幸いです。

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 を変更するには?

AB&という 3 つの異なるクラスがあるとしCます。とCのリストを持つように設計されています。AB

AとのリストをロードしBてそれらを添付したままにする場合、それらを一時オブジェクトのリストとして設定し、一時 Cオブジェクトを永続化するにはどうすればよいですか?

問題は、AおよびBs リストのそれぞれが異なるPersistenceManagersによって管理されていることです。そのため、s のリスト(接続され、 PersistenceManagerによって管理される) とs のリスト (接続され、2 番目のPersistenceManagerによって管理される) を持つ一時 Cオブジェクトを永続化しようとすると、s とs が別のPersistenceManagerによって管理されています。ABAB

オブジェクトの永続化を担当するPersistenceManagerによってすべてのリストを再度リロードする代わりに、これを解決する効率的な方法はありますか?C

0 投票する
1 に答える
44 参照

java - Persistence Manager を閉じずにデータストアに書き込む

PersistenceManager を使用してオブジェクトを更新するときに、オブジェクトを閉じずにデータベースにコミットする方法は?

0 投票する
1 に答える
1773 参照

jakarta-ee - すでに永続化されているエンティティでの JPA カスケード永続化エラー

エンティティを更新しようとして、以下のエラーが発生しました。この問題の解決策は、所有者を永続化する前に「所有された」エンティティを永続化する必要があると言いますが、私はそうしました。または、両方のエンティティをカスケードでマークします。

エラー(完全なスタックトレースは必要ないと思います):

(追加するcascade = CascadeType.ALLと、外部キーが存在しないという別のエラーが表示されますが、それを永続化しただけです。理解する限り、エンティティを正しい順序で永続化する場合、カスケードを使用する必要さえありません。

)

ここでは、投稿 (所有) を永続化し、次にスレッド (所有者) を永続化します。

投稿を永続化する方法は次のとおりです。投稿 ID が生成されていないか、smtg ではないと考えたため、フラッシュを使用しました。

Thethread の lastPost を更新する方法は次のとおりです。以前に引き出したものと直接マージすることもできますが、そうすると、2人の異なるユーザーが同じページを見てスレッドを更新すると、賛成票と反対票のフィールドが台無しになります。

投稿エンティティ:

スレッド エンティティ: