0

LotusNotesを使用したWebサービスを始めたばかりです。私がやりたいのは、連番を生成するWebサービスを作成することです。番号を生成するためのコードは、データベース内でしばらくの間使用してきた既存のコードに基づいています(単なるロータススクリプトであり、Webサービスはありません)。基本的に、次の番号を保存するドキュメントがあり、次の番号が返され、次の呼び出しのために更新されます。保存の競合が検出され、番号の保存で問題が発生した場合は、番号が再試行されます。

番号を生成するためにWebサービスを使用するかもしれないと思いました。では、Webサービスは順番に処理されますか、それとも並行して処理されますか?彼らがシリアルであるなら、私は同時に番号を保存しようとしている2人に対処する必要がないからです。

4

7 に答える 7

2

Webサービスは、2つのシステムが共通の言語を持たない場所で相互に通信するための方法です。

たとえば、.Netサーバーに接続しているLotusScriptエージェント。

DominoでWebサービスプロバイダー(サーバー)を作成する場合、LotusScriptまたはJavaでコーディングできます。次に、サーバーは、コンシューマー(クライアント)がそのWebサービスと通信するために必要なコードを作成するためのWSDLファイルを提供します。

このチュートリアルはあなたのためにそれをよりよく説明するはずです:

http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_your_first_Web_Service_provider_and_consumer_in_LotusScript_and_Java。

さて、ドミノも。Webサービスは、サーバーから要求された順序で実行されます。ただし、「WebサービスXが終了するまで開始しないでください」と言うことはできません。

これをアプリケーションにコーディングすることもできますが、それに対抗しない限り、他のユーザーのメモリ/パフォーマンスの問題がデッドロックするという深刻なリスクがあります。

Dominoサーバーは、Webサービス/エージェントを並行して実行しないように設定することもできます。しかし、繰り返しますが、同じ問題のリスクがあります。

一意のIDの場合は、Webサービスから作成したドキュメントのUNIDを使用できます。または、evaluateを介して@UNIQUEを使用できますが、どちらもテキストのみを返します。

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.designer.domino.main.doc/H_UNIQUE.html

于 2012-04-30T16:14:43.760 に答える
1

Lotus Designerのドキュメントから:

サーバーで同時Webサービスを有効にするには、そのサーバーで同時Webエージェントを有効にする必要があります。編集するサーバードキュメントを開きます。[インターネットプロトコル-DominoWebエンジン]タブをクリックします。[Webエージェントの同時実行]を有効にします。

同時Webサービス呼び出しの最大数は、「最大同時エージェント」設定によって決定されます。Lotus Administrationのドキュメントから:

最大同時エージェント同時実行を許可するエージェントの数を指定します。有効な値は1〜10です。デフォルト値は、日中は1、夜間は2です。より多くの同時エージェントを有効にすると、負荷の高いAgent Managerを軽減できますが、他のサーバータスクを実行するために使用できるリソースも減少します。

LotusNotesDominoバージョン8.5.x

于 2012-05-01T13:33:13.953 に答える
0

スイッチをオンにしない限り、非同期Webエージェントがオフになっているため、デフォルトでは順次実行されると思います。したがって、Webサービスを介して番号を割り当てるだけで、非同期設定を変更していない場合は、「安全な」順番に番号を付けるのは良いデザインパターンですが、問題はありません。

于 2012-05-01T12:41:06.773 に答える
0

同期性の考慮を回避する簡単なソリューションがあります。

を使用して一時的な番号を生成して@Uniqueから、スケジュールされたエージェントを使用して、ドキュメントの作成順に順番に番号を割り当て、適切に構成されたビューを使用して未処理のドキュメントのみを選択する必要があります。ドキュメントが作成された順序を気にせず、すべての番号が一意であるだけを気にする場合は、ビューは必要ありません。未処理のドキュメントに対してエージェントをトリガーするだけです。

一時的な番号は、適切な連続番号が割り当てられるまで一時的に参照するために使用できます。

スケジュールされたエージェントが実行されると、正しい参照番号を使用して作成者に確認を送信する必要があります。

于 2013-01-29T08:56:59.927 に答える
0

はい、Webサービスは並列で実行されます。しかし、あなたのコードは保存の競合を扱っていると書いたので、問題はないはずです。
2人のユーザーによる標準的なメモの呼び出しと同様に、1回目はドキュメントを取得し、2回目はドキュメントを取得して保存し(スピーディーな2回)、最初に保存の競合が発生します。結論として、はい、それは並行していますが、問題ではありません。

于 2012-05-01T04:21:22.257 に答える
0

または、DXLにエクスポートして、タグのsequence=属性を取得することもできます。ただし、これは、データベースの単一のインスタンスにアクセスしている場合にのみ機能します。また、DXLエクスポート/XMLインポートは膨大なオーバーヘッドです。

残念ながら、LotusScriptNotesDocumentからノートのシーケンス番号を簡単に取得する方法がわかりません。有効なサポート契約を結んでいる場合は、ソフトウェア拡張要求の問題管理レポートを開くことができます(IBMの用語では「APAR」ですが、頭字語が何に拡張されるかはわかりません)。

幸運を!

于 2014-06-15T22:14:52.330 に答える