入力パラメータを取得してデータベースに保存する関数を実装するWebサービスを作成しています。(コードはJavaであり、NetBeans IDEを使用して記述され、WebLogicサーバーにデプロイされています。)次のようなものです。
@WebService
class DataSaver {
void saveData( ...data... ) {
...
}
}
それはすでに完了していて、正しく機能しているように見えるので、今私は安全性について心配しています:
同時に接続するクライアントが多すぎる場合(または誰かが私のサイトに対してサービス拒否攻撃を行う場合)、サーバーがすべての要求を正しく処理できない場合はどうなりますか?
1)サーバー/アプリケーションがクラッシュしないようにしたいと思います。過負荷の場合にリクエストを送信するためのメカニズムは何ですか?それらはデフォルトで有効になっていますか?そうでない場合、どうすればそれらをオンにできますか?
2)Webサービス関数は値を返さないため(可能であれば、コードをそのままにしておくことをお勧めします)、クライアントはHTTPエラーコードによってのみ処理済みリクエストと未処理リクエストの違いを判断できます。したがって、過負荷の場合にHTTPエラーコードを返すソリューションをお勧めします。
私はWebサービスとパフォーマンスチューニングにあまり精通していないので(私は理論的なプログラマーであり、アルゴリズムなどです)、何を探すべきかさえわかりません。Javaでこの問題を解決するのは遅すぎるように思えます。メッセージが私のコードに到達したとき、XML要求はすでに解析されています。サーバー構成のいくつかのパラメーターがこれを処理することを期待します。しかし、Googleで見つけたり、WebLogicのマニュアルを読んだりすることはできませんでした。おそらく私は間違ったキーワードを使用しているか、この問題にどのように取り組むかについて完全に間違った考えを持っています...それが部分的な答えも非常に役立つ可能性がある理由です。