テクニカルヒント

Java Service Wrapper に関する最新のテクニカルヒントをユーザーに案内するための質問と回答のセクションを作成しました。 最新のテクニカルヒントをアナウンスするニュースレターがユーザーに送信され、 強力な機能を活用するためのヒントと解説が含まれています。

インデックス

Java Service Wrapper と自分のアプリケーションを異なるプラットフォームへ配布するには?

デルタパックは、Wrapper がすべてのサポートされているプラットフォーム * で作動できるためのバイナリーやライブラリーをバンドルします。 Wrapper を起動させる Windows Bat ファイルと Unix シェルスクリプトも含みます。 そのスクリプトを使用することで自動的に現在のプラットフォームに最適なバイナリーを選択するので、Wrapper を起動することが容易になります。

1つのコンフィギュレーションファイルで、Wrapper が Java アプリケーションを コンソールアプリケーションや Windows サービス/UNIX デーモンを、様々な OS 上で動かすことが出来ます。 必要に応じて、特定のプラットフォーム固有のコンフィギュレーションも利用できます。

デルタパックは、バージョン 3.2.0 以降のすべてのバージョンでご利用できます。

記事全文はご覧になるには、こちらをクリックしてください。

「DEP」や「ASLR」の Windows セキュリティ機能を理解する

バージョン 3.5.33 より、Wrapper はそのバイナリが 「Windows データ実行防止(英:Data Execution Prevention、DEP))」と互換性があり、「アドレス空間配置のランダム化(英:Address Space Layout Randomization、 ASLR)」をロード時に有効にします。

これらの機能を利用することで目立ったパフォーマンスへの影響はなく、Wrapper をより安全に OS 上で実行することができます。 DEP は、Wrapper に割り当てられたメモリ領域をコード実行不可能に設定し、 マルウェアより注入されたシェルコードの実行を防止します。 ASLR は、プログラムのデータ領域の位置をメモリー内にランダムに配置することで、 バッファオーバーフロー攻撃からシステムを守ります。Wrapper が実行される度にスタック、ヒープ及びライブラリは仮想メモリー内に 別の位置に配置されることで攻撃者が標的のアドレスを予測することができなくなります。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper を使用することで、数分で Java アプリケーションをデーモンプロセスとして簡単にインストールし、実行することができます。

通常、Java アプリケーションは UNIX システム上のターミナルで実行されます。 これを行うには、常にユーザーアカウントをシステムにログオンさせ、ターミナルを開く必要があります。

これは、セキュリティからシステムパフォーマンスまで、ユーザーがターミナルで間違ったキーを押して Java アプリケーションを強制終了するリスクがあるなど、いくつかの欠点があります。

Java Service Wrapper は、Java アプリケーションをデーモンとしてインストールできるようにすることで、これらの問題に対処します。 OS 上で利用可能なサービス管理ツール(init システムとも呼ばれます)の自動検出を提供したり、 アプリケーションをデーモンとして起動する際に特定のシステムを使用するように設定したりすることができます。 デーモンとして実行するというのは、あなたのアプリケーションはバックグラウンドで作動され、 システム起動時に自動的に起動され、システムシャットダウン時にキレイに終了されます。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper は、Java アプリケーションを常に指定されたプロセッサのサブセットで実行できるように構成するのに役立ちます。

通常、アプリケーションの実行に使用される CPU やコアを指定するのはオペレーティングシステムです。 アプリケーションが必要とするスレッド数と他のアプリケーションにより、OS は必要に応じてスレッドを移動させ、各 CPU の全体的な負荷を均衡させます。

アプリケーションに特定の CPU を割り当てることで常に CPU リソースが十分に確保される方法です。 逆に、同じマシン上で実行される他のプロセスに十分なリソースを保証するために、 いくつかのプロセッサを明示的に使用せず、待機させることができます。 このテクニカルヒントでは、Java アプリケーションを常に指定されたプロセッサのサブセットで実行する方法を案内します。

記事全文はご覧になるには、こちらをクリックしてください

Eclipse の外部ツールメニューから Java Service Wrapper を実行することができます。

server ご利用のアプリケーションをテストするために、Eclipse から、Java Service Wrapper を外部ツールとして実行することが出来ます。 これにより、Wrapper を使用してアプリケーションを起動する度にウィンドウを切り替える必要がなくなります。

記事全文はご覧になるには、こちらをクリックしてください。

Eclipse のデバッグ構成にリモート Java アプリケーションを追加する。

Deadlock Eclipse(R) には、デバッガなど複数のツールのセットがあります。 デバッガは、プログラムの実行中にユーザーがプログラムをコントロールすることを可能にします。 また、潜在的なバグを見つけたり、プログラムがどのように機能するかを理解するためにもデバッガの使用は最適な手段です。 デバッガは、Wrapper 上で実行している JVM にリモート接続でき、段階的に何が起こっているかを確認することができます。 次の解決策では、簡単にデバッガをセットアップする方法を確認することができます。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper には、クラッシュ検知、レポート機能、リカバリー(回復)の自動的な機能が含まれています。

Recover 言語としての Java は、ユーザーがコードを開発できるように設計されており、ゆえにアプリケーションクラッシュという結果も導くことにもなります。 いかなるエラーも、投げられた例外をキャッチして適切に処理するというのは明白であるということです。

Java 開発者やシステム管理者はご存知のとおり、Java 仮想マシン(JVM)自身がクラッシュしうるというのが現実です。 その理由は、JVM 自身もネイティブコードで書かれたプログラムであり、巨大で複雑なプログラムと同様に、JVM 自身にもバグがあるからです。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper では、内部や外部のソースから、アプリケーションをキレイにシャットダウンする多くの方法を提供しています。

CTRL-C 最初に Java Service Wrapper を使い始めるとき、多くの方が、アプリケーションをインテグレーションして、 どのようにサービスとして動作させたり、アプリケーションをモニタリング(監視)するのか、興味があることでしょう。 アプリケーションの他のシステムとインテグレーション(統合)設定した後、 次の質問は、シャットダウンの方法について知りたいですよね?

このテクニカル・ヒントでは、API などを含め、Wrapper をシャットダウンする様々な方法の全てをまとめて紹介します。 おそらく既に Wrapper ユーザーでも、まだ知らない機能が2つ、3つあるかもしれません。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper ではタイマー機能を利用して様々なアクションを実行させるスケジュール予約機能を提供しています。

Timer

多くの大規模アプリケーションでは、指定の時刻や定期的にスケジュールされたタスクを実行する機能が必要です。 問題は、異なる OS プラットフォームは各自のスケジュール予約機能を提供しています。 アプリケーションはこれらすべてのプラットフォームで動作する必要がある時に、 この機能をプラットフォームごとに個別に実装する必要があることがよくあります。

このテクニカル・ヒントでは、Wrapper タイマー機能をご紹介します。 プラットフォームに依存しない形式で、全てのアクションをスケジュール予約することが可能です。

記事全文はご覧になるには、こちらをクリックしてください。.

Java Service Wrapper には、フリーズ自動検知、さらにレポート機能、リカバリー(回復)機能を備えています。

フリーズ 重要な基幹システムがフリーズすると、システム管理者、開発チーム、およびシステム利用ユーザーにとって、 悪夢のようなものです。 問題を識別して修正するには数日、あるいは時には数ヶ月を要する場合もあります。 その間においても、システムの運用を継続させる必要があります。

多くの組織において、たかが一分間のシステム停止であっても、事業営業への直接的な影響を受けるだけでなく、 その組織やチームのシステムへの信頼性も損なわれます。 Java Service Wrapper は、ほとんどの JVM フリーズを素早く検知することができ、 アプリケーションを再起動して、問題レポートを送信しますので、 その後、人的なシステム管理者による動作の再確認をすれば良いのです。 ほとんどの場合、これだけでも数時間から数秒間だけの停滞時間に軽減することができ、 エンドユーザーがサーバー問題に気づかずにいられることもあるでしょう。

記事全文はご覧になるには、こちらをクリックしてください。.

Java Service Wrapper には、ネットワークドライブやプリンタをサービスとしてマッピングする機能を備えています。

Mapping Windows 環境では、ネットワークドライブやネットワークプリンタをマッピングすることも一般的で、 ユーザーはローカルシステムからそれらの共有リソースにアクセスします。 Windows サービスもまた同じような必要性が求められますが、 システム起動時にサービスを開始してサービスから共有にアクセスするのは、Windows では非常に実現が難しいです。 ときには、動作中のシステムでサービスが開始され、共有リソースにアクセスしますが、 システムが再起動すると、その共有リソースにはアクセスできなくなります。

Java Service Wrapper を活用すると、ユーザーのログインを必要とせず、 ネットワークドライブやプリンタへの信頼性の高いアクセスが可能です。

記事全文はご覧になるには、こちらをクリックしてください。

ほどんどの Java アプリケーションに Java Service Wrapper を活用することができ、 ほんの数分の簡単な作業で Java アプリケーションを Windows サービスに組み込むことができます。

Windows サービス Windows システム上で動作している Java アプリケーションは、デスクトップ上でコンソール内で動作する傾向にあります。 これは、Windows サービスとして動作させるための Java 機能の欠点に起因するところでもあるのですが、非常に多くのデメリットがあります。 例えば、2、3のデメリット例を挙げるならば、 必要のないデスクトップへユーザーがログインするためシステムパフォーマンスに及ぼす影響や、 ユーザーがキーを押し間違えてコンソールを操作してしまうかもしれない単純なリスクなど、セキュリティ問題があります。  多くのアプリケーションでは、それらの問題を Windows サービスとして動作させることで解決でき、 Java Service Wrapper を導入することで、ほとんどのケースにおいて、一行のコードを書き足す必要もなく実現可能です。

記事全文はご覧になるには、こちらをクリックしてください。

Java Service Wrapper にはデッドロックを自動的に検知する機能が含まれており、レポート機能やリカバリー(回復)を行います。

デッドロック ほとんどのアプリケーションにおいて、デプロイ前や公開リリース前に、一連の厳しいテストを実施するものですが、 しかしながら現実社会において予期しない問題が発生することも誰もが知っているとおりです。 悲しいことに、巨大なアプリケーションのマルチスレッドによくある問題の一つが、 デッドロックです。 それは致命的な問題になりやすく、さらに問題の軌跡を追って解決するのも非常に難しいものです。

Java Service Wrapper には、アプリケーションをモニタリング(監視)して、 デッドロックを自動的に検知する機能が含まれています。 その機能は非常に軽く、システムパフォーマンスに何も影響を及ぼしません。 Wrapper がデッドロックを検知すると、設定された希望どおりの動作で、すぐさま必要な処理を行います。 同時に、デッドロックの状態を細かく記録していくため、開発者にとっても見直しが容易になります。

記事全文はご覧になるには、こちらをクリックしてください。.