問題タブ [orphaned-objects]

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 投票する
5 に答える
866 参照

.net - フィールドを更新するときにDB4Oで孤立したオブジェクトを防ぐ

PersonオブジェクトをDB4Oに保存したい。[個人の場所]フィールドは、時間の経過とともに変更できます。そこで、DBから人を取得し、メソッドを呼び出して、場所フィールドを新しい場所オブジェクトに設定します。(Locationオブジェクト、つまりDDD値オブジェクトを不変にしたい)。

これは機能しますが、以前に割り当てられたLocationオブジェクトはデータベースのままです。これらの孤立したLocationオブジェクトを削除するようにDB4Oを構成するにはどうすればよいですか?または、ガベージコレクションを行うためのカスタムプロセスが必要ですか?

この例の簡略化されたクラス:

編集:いくつかの詳細情報-PersonはDDD集約ルートであることが意図されています。したがって、人の内部状態への外部参照はありません。Personがその場所を更新すると、古い場所は存在しなくなります。

0 投票する
4 に答える
1698 参照

c# - 孤立したオブジェクト (ビットマップなど) を破棄するにはどうすればよいですか?

他のクラス B、C などにビットマップを提供するクラス A があります。

クラス A はビットマップをリング キューに保持するため、しばらくするとビットマップへの参照が失われます。

まだキューにある間に、同じ Bitmap を複数のクラスでチェックアウトできるため、たとえば、B と C の両方がこの同じ Bitmap への参照を保持できます。しかし、そのうちの 1 つだけが Bitmap をチェックアウトしたか、または 1 つもチェックアウトしていないこともあり得ます。

A、B、または C のいずれかでビットマップが不要になったら、ビットマップを破棄したいと思います。

B と C が使用を終えたときに何らかの形で信号を送る責任を負うようにする必要があると思いますが、全体的なロジックについてはわかりません。

この例では、3 回呼び出される DisposeIfNowOrphan() のような呼び出しである必要があります。

1 - ビットマップがクラス A のキューから追い出されたとき

2 - B が使い終わったとき

3 - C が終了したとき

それが最善の戦略である場合、孤立状態をどのように評価できますか?

どんなアドバイスでも大歓迎です。

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

arrays - 孤立したノードを識別する方法

DBに格納されているノードの階層があります。すべてを選択し、それらを配列に格納してから、それらを繰り返し処理して、メモリ内にネストされた配列を作成します。

入力は次のようになります。

[{名前:A}、{名前:B}、{名前:X、親:A}、{名前:Y、親:A}、{名前:C}]

出力は次のようになります。

[{名前:A、子:[{名前:X}、{名前:Y}]}、{B}、{C}]

入れ子の深さに制限はありません。

私が抱えている問題は、レコードの1つに無効な親参照がある場合、そのレコードを階層に配置できず、スクリプトが無限ループで終了し、親を見つけようとすることです。

いつ無限ループに陥ったかを知る方法があるに違いない。記録のために、ループ内でアイテムを挿入する親がないことに気付いたとき、親が行の下流に存在する可能性があるため、配列の最後にアイテムをプッシュします。

同じアイテムを何度もサイクリングしていることに気付くはずだと思いますか?

編集1-コードこれは重要なビットです:

($ this-> push()は親を見つけようとするメソッドであり、成功した場合は、その階層に$ itemを挿入します)

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

eclipselink - EclipseLink が個人所有の 1 対多アイテムを削除しない

1 対多の関係としてマップされている個人所有のエンティティを Eclipselink で削除することができません。個人所有のエンティティを 1 対多のコレクションから削除し、その親への参照を NULL に設定して親を保存すると、個人所有のエンティティがデータベースから削除されません。しかし、それはオブジェクトから削除され、セッションの残りの部分では、個人所有の実体が実際に削除されたように見えます。

ここに1つのマッピングがあります

私はカスケードをすべて追加しようとしましたが、@CascadeOnDelete、およびそれらのすべての組み合わせも追加しましたが、影響はないと思われますが、影響はありませんでした。

向こう側:

JoinColumn(nullable=false) を追加し、@ManyToOne アノテーションを削除して、これらのアノテーションの存在/削除のすべての組み合わせを試しました。変更による影響はありませんでした。

削除コード:

更新するコード:

コードを保存:

0 投票する
3 に答える
228 参照

ruby-on-rails - Rails の方法: プロジェクトにタスクがある場合、それを削除すべきではありません: どうすればこれを修正できますか?

こんにちは、プロジェクトがあり、各プロジェクトにはタスクがあります。タスクはプロジェクトに属します。プロジェクトを削除する前に、関連するタスクがあるかどうかを確認したいと考えています。プロジェクトを削除したくないタスクがある場合。関連するタスクがない場合は、プロジェクトを削除する必要があります。コードを教えてください。私は何が欠けていますか?

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

oracle - OracleAQ が無効なサブスクライバをキューに残すのはなぜですか?

これは Oracle 11.2.0.3 です。

OracleAQ を介して Oracle の JMS を使用する場合に問題が発生します。これは問題なく動作しますが、キューが数千のメッセージでいっぱいになり、時間の経過とともに数百万のメッセージでいっぱいになることに気付き始めました。これらのいくつかは PROCESSED 状態にありますが、ほとんどは READY です。この動作は、「ゾンビ」またはトピックの購読者の死亡にまで遡ることができました。Java プロセスが終了し、それ自体を登録解除する機会が得られない場合、サブスクライバー レコードがキューに残され、Oracle はプロセスが停止していることを検出しないようです。数か月後、マルチサブスクライバー キューに送信された新しいメッセージはサブスクライバーの数で乗算され、実際よりもはるかに多いと見なされます。(これは、登録者数の上限に達したときに初めて気付きました。)

qmon プロセスが実行されています。プロセスの最小数を増やしても効果がありませんでした。キューに死んだサブスクライバがない限り、キューのクリーンアップは非常にうまく行われます。

誰もこれを前に見たことがありますか?うまくいけば解決策を見つけましたか?

0 投票する
3 に答える
1226 参照

django - Django で孤立した m2m オブジェクト/タグを効率的に削除する

ManyToManyField を介して接続されている 2 つのモデル (写真とタグ) があります。

時折、どの写真からも参照されなくなった孤立したタグを取得します。これらのタグを効率的に削除する方法はありますか? 私はこの答えについて知っています: Django: M2M孤立したエントリを削除しますか?

現時点でのソリューションは次のようになります。

ただし、データベースの増加に伴い、このスクリプトの実行時間は非常に長くなります:-P タグ テーブルからすべてのタグ ID のリストを取得し、多対多テーブルからすべてのタグ ID のリストを取得する効率的な方法はありますか?交点リストを作成するためのテーブル?

0 投票する
3 に答える
1744 参照

azure - 孤立したサブスクリプションの自動期限切れ (Azure ServiceBus Messaging SubscriptionClient)

私が考えているシナリオは次のとおりです。Service Bus はインスタンス間の通信に使用されるため、サブスクリプションはサービス インスタンスごとに一意です。最終的に、インスタンスが正常にシャットダウンされない場合、そのサブスクリプションは削除されません。

サービス インスタンスが「停止」して再起動すると、サブスクリプションの以前の内容は無関係になり、破棄される可能性があります。

では、カスタムのオーファン検出メカニズムに頼ることなく、Service Bus サブスクリプションの「有効期限」を設定したり、同様のものをシミュレートしたりする方法はありますか?

0 投票する
3 に答える
972 参照

java - Hibernateで孤立した子を削除することはできません

私はこれらの問題をたくさん見つけましたが、何らかの理由でそれらは私のために機能しません。だから、私は明らかに何か間違ったことをしている。

フォームオブジェクト:

フォームフィールドオブジェクト:

休止状態のアノテーションを使用しています:

フォーム内にフォームフィールドオブジェクトを作成しても問題ありません。両方のオブジェクトが作成されます。フォームオブジェクトを削除すると、フォームフィールドオブジェクトはデータベースに残ります。

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

sql-server-2012 - ドメイン上にない新しいマシンに復元した後の孤立したユーザー。KB918992 を理解する

明確化/確認を求める: 私の理解が正しければ、「孤立したユーザー」に関する次の考慮事項は、Windows ネットワーク セキュリティ プリンシパルに関連付けられているユーザーにのみ適用されます。データベースが元のネットワーク上にない別のマシンに復元され、sp_help_rev_login スクリプトが実行された場合、「純粋な」SQL Server ログインに関連付けられたユーザーは孤立しません。そうですか?

http://support.microsoft.com/kb/918992から:

サーバー A とサーバー B が異なるドメインにある場合は、出力スクリプトを変更する必要があります。次に、CREATE LOGIN ステートメントで新しいドメイン名を使用して、元のドメイン名を置き換える必要があります。新しいドメインでアクセスが許可された統合ログインは、元のドメインのログインと同じ SID を持っていません。したがって、ユーザーはこれらのログインから切り離されます。これらの孤立したユーザーを解決する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。 240872 SQL Server を実行しているサーバー間でデータベースを移動するときにアクセス許可の問題を解決する方法 サーバー A とサーバー B の場合同じドメインにある場合、同じ SID が使用されます。したがって、ユーザーが孤立する可能性は低くなります。