私はMySQLサービスに依存するMySQLおよびWebLogicサービスのサービスマニフェストを作成しています。私はそれらすべてが「待機」(フォアグラウンドでプロセス実行)管理モデルを使用したいと思います。この設定についていくつかの質問があります。
まず、サービスの状態をどのように確認しますか?たとえば、サービスを使用する前にMySQLスクリプトを作成したときmysqld_safe
にバックグラウンドでスクリプトを起動してから応答を受け取るまで、スクリプトをpingして続行する前に準備ができていることを確認したいと思います。これでサービスをすぐに「オンライン」に切り替えますが、実際に準備ができているかどうかはわかりません。
この問題に対する良い解決策がない場合は、WebLogicスクリプト自体にMySQL DB pingを配置し、特定の回数だけ試してからステータス1で終了します。ただし、サービスは引き続き再起動されます。ゼロ以外のシャットダウン後にサービスをメンテナンスモードに強制する方法は?
最後に、依存関係が得られ、MySQLサービスがオンラインである限り、WebLogicサービスは開始されません。しかし、これには2つの質問があります。
- WebLogicサービスが停止したときにMySQLサービスを開始するにはどうすればよいですか?
- WebLogicサービスがすでにオンラインになっている場合、MySQLサービスが失敗した場合にどのように終了するのですか?
答え1
1 - weblogicサービスのxmlマニフェストを設定するときにmysqlサービスを依存サービスとして定義します。このようにしてmysqlサービスが完全にオンラインで報告されない限り、weblogicは起動しません。これは、あなたのweblogicアプリケーションがmysqlサービスの可用性に依存するため、mysql dbサービスがダウンしても不要なdb connect / sqlステートメントを実行しようとしないため、論理的に見えます。
2 - 依存性サービスがオフライン/低下するため、weblogicサービスもオフラインになり、実行されません。したがって、weblogicサービスは独自のメンテナンスモードに移行するため、mysqlサービスをオンラインに戻す試みはありません。さらに、mysqlサービスはメンテナンス/オフライン/ダウングレードモードに移行し、smfはweblogicサービスをダウングレード/オフラインとして表示するため、mysqlサービスの起動に使用できないため、weblogicは将来の起動を保証しません。これはおそらく循環依存関係の明白なケースであり、2つのサービスを処理するために3番目のモジュール/ cronjob / transient-servicesを使用して解決する必要があります。
今、主要な依存サービスはmysqlであることは明らかです。ほぼ常に実行されているweblogicの可用性ときちんとした機能を確保するために、3番目のモジュール/スクリプト(cronjobなど)を使用して状態を監視することをお勧めします。 mysql サービスを最優先にしてから weblogic サービスを選択します。サービスが失敗した場合は、SMF回復コマンドを処理/実行する必要があります。
答え2
さまざまなクエリを使用し、xmlファイルを生成するようにサービスを設定することをお勧めします。http://code.google.com/p/manifold/