問題タブ [stateless]
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.
java - @Schedule でアノテーションが付けられたメソッドは、依存関係 jboss.ha:service=HASingletonDeployer,type=Barrier では機能しません
jboss 6.1.0.Final で実行されている 2 つのノードを持つ 1 つのクラスター化されたアプリケーションがあります。
スケジュールされた時間にいくつかのタスクを実行する必要があるステートレス Bean がいくつかあります。EJB 3.1 タイマー サービスを使用しています。ここにそれらの1つがあります:
ここまで、これは完全に機能します。
しかし、私は2つのノードを持っているので、そのうちの1つでのみdoStuffメソッドを実行する必要があるので、ここに私のMETA-INF/jboss.xmlがあります
サーバーが起動すると、MyBean がノードの 1 つだけに作成されていることがわかります。
しかし、依存関係が META-INF/jboss.xml で宣言されているため、doStuff メソッドは実行されません。META-INF/jboss.xml から依存関係を削除してテストしたところ、メソッドはスケジュールされた時間に実行されましたが、2 つのノードで実行されました。クラスターの 1 つのノードのみで実行されるスケジュールされたメソッドを作成する必要があります。
更新: META-INF/jboss.xml でこれを行う場合:
スケジュールされたメソッドは、どのノードでも実行されません。
しかし、私がこれを行うと:
メソッドは 2 つのノードで実行されます。
誰でも私を助けることができますか?ありがとう。
database - RESTFul アーキテクチャにおける一意の制約
15 年間のステートフル クライアント/サーバー ソフトウェア開発の経験 (そしてそれには固有の問題があります) を持つ私は、RestFul アーキテクチャにおけるステートレスの概念をまだ理解しようとしています。
ビジネス・オブジェクトを REST サービスにポストする汎用インターフェースがあるとします。たとえば、ユーザー リソース。ユーザー リソースには、電子メール アドレスの一意性に関する制約が必要です。私の最初の反応は、基礎となるデータベース機能を使用してこれを「保証」することです。2 番目の反応は、何らかのロックまたはトランザクション メカニズムを導入することです。
しかし、私のレスファリアンの同僚は、「いいえ!」と答えます。クライアントは、新しいユーザーの電子メールが一意であるかどうかを確認する必要があり、重複した電子メール アドレスが挿入される可能性があるわずかな時間枠があるという事実を受け入れる必要があります。クライアント アプリケーションは、この競合を処理できる必要があります。
これは、私が学んだことすべてに反し、まったく自然に感じられません。教えてください...
jsp - jsp と Java Bean
Tomcat でホストされている JSP ページを構築していますが、各 JSP で参照されている Bean インスタンスがステートレス/ステートフルかどうか疑問に思っていますか? これらの Bean インスタンスはどのように発生しますか? ページにアクセスするたびに (再) 作成されますか? 2 人の異なるユーザーが同時に同じページにアクセスし、同じ Bean インスタンスを取得することを心配する必要はありますか?
一般に、jsp と Bean の間の相互作用は非常に紛らわしいので、誰かがそれらの概念のチュートリアル/説明を参照できれば幸いです。ありがとう!
PS Bean クラスの静的フィールドはどうですか? これらの値にはデフォルトで適用範囲がありますか?
jsf - JSF vs CDI SessionScope は Statelss EJB トランザクションに奇妙な影響を与えます。誰でも説明できますか?
ステートレス セッション Bean (UserInfoService) が注入された SessionScoped マネージド Bean (UserInfoController) があります。
UserInfoController は UserInfoService を呼び出して、UserInfo レコードを更新します。UserInfoService は、適切な UserInfo レコードをロードして変更し、最後に em.flush() を呼び出します。
マネージド Bean の UserInfoController に CDI アノテーション (javax.enterprise.context.SessionScoped) のアノテーションが付けられている場合、ステートレス Bean のエンティティ マネージャーに PersistenceContextType.EXTENDED のアノテーションが付けられていない限り、ユーザー レコードは更新されません。
マネージド Bean が JSF アノテーション (javax.faces.bean.SessionScoped) でアノテーション付けされている場合、PersistenceContextType.TRANSACTION を使用すると、レコードが正常に更新されます。
誰でもこの動作を説明できますか? 呼び出し元が JSF または CDI SessionScoped マネージド Bean であるかどうかに関係なく、トランザクション境界は Stateless Bean に制限されるべきではありませんか? (TransactionAttributeType は定義されていません。デフォルトで REQUIRED に設定する必要があります)
どんな情報でも大歓迎です!ありがとう!ベン
rest - ステートレスAPIサービスでの認証-安全ですか?
ステートレス認証を処理するための標準的な方法はありますか?
私はAPIサーバーを作成しており、リクエストの発行者が当サイトの有効なユーザーであることを保証できるように、各リクエストがクライアントによって署名されることを望んでいます。
サーバーとクライアントには共有シークレットがあります。つまり、ユーザーのハッシュ化されたパスワードです。
- サーバーはランダムなナンス値をクライアントに送信します
- クライアントは署名鍵Kを(nonce、hashed_password)として作成します
- クライアントは、キーKを使用してメッセージ認証コードを追加することにより、各要求に「署名」します
- 例('delete image_x'、user_id、request_signature)
- 次に、サーバーは、署名を処理する前に、すべての要求に対して有効であるかどうかをチェックします。
明らかな欠陥はありますか?
properties - ステートレス オブジェクト、パラメータ、および戻り値を優先する、ステートフル オブジェクト、プロパティ、およびパラメータのないメソッド
このクラス定義は少し奇妙だと思います: http://www.extremeoptimization.com/Documentation/Reference/Extreme.Mathematics.LinearAlgebra.SingleLeastSquaresSolver_Members.aspx
Solve メソッドには戻り値がありますが、Solution プロパティでも結果を取得できるため、その必要はありません。
これは、私が従来のコードと見なしているものです。
これは、リンクのソルバーと同じ精神の代替手段になります。
2 番目のバージョンが少し「非伝統的」であること以外に、長所と短所は何ですか?
はい、コンパイラーは、いくつかのプロパティ (パラメーター) を割り当てるのを忘れたユーザーを助けませんが、これは、書き込み可能なプロパティを含み、コンストラクターに必須の値を持たないすべてのコンポーネントに当てはまります。
はい、スレッド化は機能しませんが、各スレッドは独自のソルバーを作成できます。
はい、ガベージ コレクターはソルバーの結果を破棄できませんが、ソルバー全体が破棄された場合は破棄されます。
はい、コンパイラとプロセッサには、パラメータと戻り値の特別な処理があり、高速になりますが、パラメータ処理の時間はほとんど無視できます。
等々。他のアイデア?
immutability - ステートレスと不変の違いは何ですか?
「ステートレス」や「イミュータブル」という言葉をよく耳にします。たとえば、HTTP はステートレス プロトコルであり、String オブジェクトは不変オブジェクトです。しかし、私は両者の違いを理解するのに苦労しています。ステートレス オブジェクトを作成すると、「状態」データが内部に保存されません。Immutable オブジェクトを作成すると、それは決して変更されないことを意味します。
同じ意味じゃない?
不変オブジェクトは変更されないため、定義上、状態を持つことはできません。それは永遠にあるものです。また、オブジェクトに状態がない場合、(定義により) 変更することはできません。したがって、すべてのステートレス オブジェクトが不変であり、不変オブジェクトがステートレスではないのでしょうか。
変更可能なステートレス オブジェクトまたは不変のステートフル オブジェクトの例は何ですか?
http - 「HTTPはステートレスプロトコル」と言われるのはなぜですか?
HTTPにはHTTPCookieがあります。Cookieを使用すると、サーバーはユーザーの状態、接続数、最後の接続などを追跡できます。
HTTPには永続的な接続(キープアライブ)があり、同じTCP接続から複数の要求を送信できます。
python - RESTのステートレスの原則は実際にはどういう意味ですか?
REST(フィールディングの論文など)の紹介記事を読んだ後、ステートレスであるという私の認識は、サーバー側にセッションオブジェクトがあってはならないということです。それでも、この例では、 Flask(およびおそらく私が知らないさまざまなテクノロジーの他のRESTフレームワーク)がサーバーに情報を格納するためのセッションオブジェクトを提供していることがわかります。
確かに、私はRESTの無国籍を誤解しています。それで、それは本当に何ですか?
entity-framework - EF Code First Detached Entityがオブジェクト参照を更新しない
正確なエンティティを投稿しています:
次のコードを使用して、切断されたコンテキストの方法で更新しています。
これは、私の dbContext によって公開されたメソッドであり、次のように呼び出されます。
問題は、EF が参照されている Plan オブジェクト以外のすべてのプロパティを更新することです。誰かが間違いを教えてもらえますか? 事前 : エンティティは、すべてのプロパティが正しく設定された状態で更新ポイントに到達します。EF はデータベース内の FK の更新に失敗するだけです (例外はありません) 更新: このような問題を解決しようとしましたが、うまくいきませんでした: