前回に続き、同じタイトルを使って行きたいと思います。 「監視しやすいアプリを構築するTips」という言葉は長ったらしいので、 略して「Module列の活用」とさせていただきます("省略"じゃなくて、"言い換え"ですが...)。 この「Module列」の活用って、実は結構古くからある機能なんです。 少なくとも、Oracle8iの時からありますし、私のお客様でもOracle8i (8.1.7.4)でも ご活用いただいていました。 で、これって結局何?といわれると、V$SESSIONビューのモジュール列に反映されるものです。 SQL*Plusから実行するなら、こんな感じです。 SQL> SET APPINFO 例: SQL> SET APPINFO myappl DBAが稼動状況監視の時や万が一の障害発生時に最初に良く見る V$SESSIONやDB Controlでは以下の様に反映されるのです。 これは内部的には、DBMS_APPLICATION_INFOというPL/SQLパッケージの SET_MODULEというプロシージャが実行されているのです。 ということは? もう、お分かりですね。 DBMS_APPLICATION_INFOパッケージを使えば、様々なアプリケーションからでも このModule列に対してアプリケーション情報を設定できるのです。 アプリケーションを開発する時に、そのアプリケーションが運用において、 数十という種類のサービス、アプリケーション、そして実際には 数百~数千というデータベース・セッションの中に埋もれてしまうという 事を意識して開発する人は限られているのでは無いでしょうか? 障害の時、エラーが発生している時、その発生している状況を迅速かつ 正確に情報を収集できるかが早期解決の鍵になります。 データベース・インスタンス・レベルでの情報収集は自動ワークロード・ リポジトリ(Automatic Workload Repository:AWR)によって実施されています。 そこから、更に掘り下げたい場合には、SQLトレースを取得する事などが考えられます。 更に効率化を狙う時には、 ・SQLチューニング・セットを作成する ・SQLチューニングアドバイザを実行する...
世はまさにクラウドまっさかり。 クラウド化するのはハードウェア・コンピューティング・リソースだけではなく、 アプリケーション実行環境(いわゆるミドルウェア。データベースや アプリケーション・サーバー)なんかもクラウド化しちゃうんですよね。 とは言うものの、それを具現的に管理する方はリソースの配分であるとか もしもの時の問題の切り分けについても具現的に考えなければならないですよね。 クラウドです。といっているのは、Amazonさんだったりですが、国産の データセンターサービス事業者の方などもクラウド的なPlatform As A Service やInfrastructure As A Serviceなども提供してくると思います。 サービス提供者の視点で考えると、1つのアプリケーション実行環境に 複数のお客様のアプリケーションが稼動する事になります(マルチテナント・ ホスティングという事です)。 マルチテナント・ホスティングにおけるアプリケーション実行環境あるいは それよりも更に小さな単位だとテナントに提供するワークスペースやそこで 実行されいるアプリケーションを切り出して監視する事やもしものときの 分析ができる事が重要になってきます。 1つの実装例として、Oracle Application Express (通称 APEX)があります。 これは1つの実行環境であるAPEX上に複数のワークスペースを作成する事ができ、 そのワークスペースの中に複数のアプリケーションを構築する事ができます。 APEX自体の実装はOracle Database上に実装されておりますので(HTTPの リクエスト受ける口としては、HTTP Serverを外だしにする事もできますし、 Oracle DBにEmbeddedされたサーバーを口とする事もできます)、Oracle Databaseの持つ セッション特定のTipsが活用されています。 このTipsは前回のエントリでお話した「5/23開催のOracle Weekendセミナー」の中でもお伝えした安定稼動の為のTips」の活用事例でもあります。 例えば.......
If you use an RSS reader, you can subscribe to a feed of all future entries tagged 'Cloud'.