この付録では、Oracle Load Testingによって生成されるエラー・メッセージと、実行可能な対処方法をリストします。
エラーコードおよびメッセージは、メッセージ・ボックスとして表示されるか、Oracle Load Testingオートパイロットの仮想ユーザー・グリッドで「現在のエラー」または「前のエラー」列に表示されます。
「現在のエラー」と「前のエラー」には、実行中のVUでテスト中に発生したエラーが表示されます。「現在のエラー」には、現在の反復で発生したエラーが表示されます。「前のエラー」には、前回の反復で発生したエラーが表示されます。
次の項に、エラーとその説明をリストします。
サーバーの作成に失敗しました
Oracle Load Testingは、仮想ユーザーを実行するエージェント・プロセスを作成できませんでした。次の操作を試してください。
Oracle Load Testingエージェント・ソフトウェアがエージェント・システムにロードされており、それがOracle Load TestingシステムにロードされているOracle Application Testing Suiteソフトウェアと同じバージョンであることを確認します。エージェントとして使用する予定のシステムがエージェントとして機能するためには、Oracle Load Testingエージェント・ソフトウェアか、完全なOracle Application Testing Suiteがインストールされている必要があります。Oracle Load Testingエージェント・ソフトウェアとOracle Application Testing Suiteソフトウェアの両方を、同じシステム上にはインストールしないでください。両方をインストールすると、2つのプログラム間でリソースの競合が発生する場合があります。
Oracle Load Testingシステムから、すべてのエージェント・システムに正常にPingを発信できることを確認します。システムのPingに使用する名前は、Oracle Load Testingシステムでエージェント・システムに指定する名前と同じです。エージェント・システムに正常にPingを発信できない場合は、ネットワーク管理者に問い合せて問題を解決してください。Oracle Load Testingシステムからエージェント・システムにPingを発信できない場合は、Oracle Load Testingシステムからエージェントを実行できません。
同じユーザーが、Oracle Load Testingシステムと、エージェント・システムすべての両方にログインしていることを確認します。エージェント・システムのすべてをOracle Load Testingシステムで制御するには、そのすべてにログインしている必要があります。エージェント・システムに別のユーザーとしてログインすることもできますが、その場合にはOracle Load Testingシステムにログインしているユーザーと同じ管理権限を持っていることが前提です。
Oracle Load Testingとエージェント・システムがドメイン・セキュリティ・モデルに追加されていない場合には、Oracle Load Testingとエージェント・システムの両方がAdministratorとしてログインし、まったく同じパスワードを使用する必要があります。
Windowsエクスプローラを使用して、Oracle Load Testingシステムから各エージェント・システム上のドライブをマッピングしてみます。ネットワークの設定状況によっては、Oracle Load Testingシステムがエージェント・システム上のプロセスをスタートアップすることが許可されていない可能性があります。これを回避する最も簡単な方法は、エージェント・システムにドライブをマップし、Windowsで認証することです。
Oracle Load Testingシステムで、「シナリオ」リストの「構成」パラメータにスクリプトを追加します。システム・マネージャを使用して、スクリプトを実行するエージェント・システムを追加し、「シナリオの作成」タブの「システム」フィールドからシステムを選択します。
このエラーは、Oracle Application Testing Suiteコンポーネントのレジストリ・エントリに関する問題を示している場合もあります。Oracle Application Testing Suiteのアンインストールと再インストールを試みてください。再インストールしても問題が解決されない場合には、カスタマ・サポートにお問い合せください。
検索に失敗しました
Oracle Load Testingは、スクリプトに記録された2つのページ間のナビゲーションを検索できません。Oracle Load Testingでは、スクリプトがOracle OpenScriptで正常に再生された場合でも、様々な理由でこのエラーが発生します。Oracle OpenScriptは、スクリプトを記録および再生するとき、Thickクライアントのブラウザ・モードを排他的に使用します。
通常、「見つかりません」エラーは、Oracle Load Testingで再生されるスクリプトに記録される、動的に生成されたHREFに関連しています。たとえば、
セッション情報
インラインJavaScript
動的に変更されるその他の属性
を含むHREFは、Webページ・ソースのリンクに使用されている特定の技術と、Oracle Load Testingの現在の設定に基づいて、Oracle Load Testingにおいて「見つかりません」エラーを引き起こす可能性があります。
Oracle Load Testingで「見つかりません」エラーが発生した場合は、1つの仮想ユーザーを使用してシナリオ/スクリプトを実行してみてください。シナリオ/スクリプトがOracle Load Testingで実行される場合は、そのシナリオ/スクリプトを使用して小規模の負荷テストを実行できます。
「見つかりません」エラーを解決するには、カスタマ・サポートに問い合せて状況に応じたOracle Load Testingの調整について確認してください。同じ「検索に失敗」エラーでも、状況によって解決方法は同じではないことに注意してください。「検索に失敗」エラーを解決できない場合には、必ずカスタマ・サポートにお問い合せください。
一致しません
Oracle Load Testingは、スクリプトに記録された2つのページ間でナビゲーション・パス(クリックされたリンクをOracle OpenScriptがスクリプトに記録する際の内部形式)を検出しましたが、そのナビゲーション・パスの1つ以上の部分コンポーネントを一致させられませんでした。
「一致しません」エラーも、Oracle Load Testingで再生されるスクリプトに記録される、動的に生成されたHREFに関連しています。
「一致しません」エラーを解決するには、カスタマ・サポートに問い合せて状況に応じたOracle Load Testingの調整について確認してください。同じ「一致しません」エラーでも、状況によって解決方法は同じではないことに注意してください。「一致しません」エラーを解決できない場合には、必ずカスタマ・サポートにお問い合せください。
シナリオ'<シナリオ名>'を開けませんでした
Oracle Load Testingは、指定されたシナリオ・ファイルを開けませんでした。
キー'<レジストリ・キー>'を開けませんでした
Oracle Load Testingは、指定されたレジストリ・キーを開けませんでした。
'<レジストリ・キー>'の問合せに失敗しました
Oracle Load Testingは、指定されたレジストリ値文字列を取得できませんでした。
コールアウト'<サーバー・プログラムID>'を起動できませんでした
Oracle Load Testingは、スクリプトで指定された外部コールアウト・サーバーを起動できません。
ライセンス・エラー
ライセンスが許可されているより多くのVUを使用しています。許可されているライセンス数を確認するには、「ヘルプ」メニューから「バージョン情報」を選択してください。
Oracle Load Testingは、内部的なRSWISERVエラーを、仮想ユーザー・グリッドのエラー列にレポートします。次に、RSWISERVエラーの例を示します。
DRIVER ERROR 2010, RSWISERV Error, http:// ......
コード | エラー定数 |
---|---|
100 | RSW_NO_RESULTS_TO_REPORT |
101 | RSW_CONNECT_BUCKET_TIMEOUT |
200 | RSW_DLL_UNINIT_COMPLETED |
1000 | RSW_ERROR_INVALID_PARAMETERS |
2000 | RSW_INET_LAYER_NOT_INITD |
2001 | RSW_OPEN_REQUEST_FAILED |
2002 | RSW_ADD_REQUEST_HEADERS_FAILED |
2003 | RSW_SEND_REQUEST_FAILED |
2004 | RSW_QUERY_INFO_FAILED |
2005 | RSW_FAILED_TO_CLOSE_HANDLE |
2006 | RSW_ERROR_NO_SESSION_HANDLE |
2007 | RSW_INTERNET_SET_OPTION_FAILED |
2008 | RSW_INTERNET_QUERY_OPTION_FAILED |
2010 | RSW_INTERNET_LOGIN_FAILURE |
2011 | RSW_AUTH_LOGIN_PARMS_NOTAVAILABLE |
2012 | RSW_CANNOT_CREATE_AUTH_OBJECT |
2013 | RSW_READ_REQUEST_FAILED |
2014 | RSW_INTERNET_REQUEST_TIMEOUT |
3000 | RSW_UNABLE_TO_CREATE_EVENT |
3001 | RSW_UNABLE_TO_CREATE_THREAD |
3002 | RSW_UNABLE_TO_CREATE_NEW_REQUEST |
3003 | RSW_UNABLE_TO_CREATE_NEW_THEAD_ENTRY |
3004 | RSW_UNABLE_TO_CREATE_MUTEX |
3005 | RSW_UNABLE_TO_CREATE_NEW_OBJECT |
3006 | RSW_UNABLE_TO_ALLOCATE_NEW_MEMORY |
トラブルシューティングに有効なサポートとログ・ファイルを利用するには、Oracle Application Testing Suiteのスタート・メニューで「ツール」サブメニューからサポート・ファイルの作成を選択します。OATSSupport.zipファイルがデスクトップに表示されます。
この項では、Oracle Application Testing Suite Application Serviceのメッセージと、想定される原因および解決方法をリストします。
症状: エージェントが孤立しているか、メッセージを閉じるのに時間がかかりすぎる、またはセッションが予定より早く終了します。
発生時期: 主にテスト中。
原因: Oracle Load Testing、Oracle Application Testing Suite Application Service、およびエージェントの間で通信ラインが中断されています。
解決方法: 次の点を確認してください。
Oracle Load Testing、Oracle Application Testing Suite Application Service、およびエージェントがインストールされているマシンにpingの送信が可能なことを確認します。ネットワークが稼働していることも確認します。
<installdir>\logsディレクトリに移動してログ・ファイルを調べ、問題の性質を示す例外(複数ソケット・エラーとそれに続くセッションの強制終了など)がないかどうかを確認します。
イベント ビューアでシステム・ログを開き、ネットワーク警告が発生していないかどうかを確認します。
症状: サーバーが初期化されていません。メッセージを閉じるのに時間がかかりすぎます。
発生時期: 常にテスト実行前。
原因: Oracle Application Testing Suite Application Serviceが稼働していない、または問題が発生しています。Oracle Load Testingの位置が正しくない。
解決方法: 次の点を確認してください。次の点を確認してください。
正しいHost\Portが使用されていることを確認します。
Oracle Application Testing Suite Application Serviceが稼働していることを確認します。そのマシンの「サービス」で、Oracle Application Testing Suite Application Serviceが稼働していることを確認します。
サーバーを停止し、開始します。
<installdir>\logsディレクトリに移動してAdminServerログ・ファイルを調べ、問題の性質を示す例外(マシンがネットワークから切断されているなど)がないかどうかを確認します。
症状: Oracle Load Testingを起動したときページが表示されません。
発生時期: Oracle Load Testingの起動時。
原因: 次の場合に発生する可能性があります。
Oracle Application Testing Suite Application Serviceが開始されていない。
ポート競合が発生している。
インストールが正常に実行されなかった。
前回の実行時から古いメッセージが残っているため、CPUの使用率が100%に達している。
解決方法: 次の点を確認してください。
次の手順で、Oracle Application Testing Suite Application ServiceとOracle Load Testing Agent Serviceが稼働していることを確認します。
Oracle Application Testing Suite製品をすべて終了します。
Windowsの「コントロール パネル」で「管理ツール」から「サービス」を開きます。
Oracle Load Testing AgentとOracle Application Testing Suiteのサービスが稼働していることを確認します。
必要な場合には、Oracle Load Testing AgentとOracle Application Testing Suiteのサービスを再起動します。
Oracle Application Testing Suiteアプリケーションを再起動し、セッションを開始します。
サーバー・ログでエラー・メッセージをチェックするために、インストール・ディレクトリでC:\OracleATS\logs\wls_oats.logのファイルを確認します。
Oracle Load Testingは、起動時にデフォルトでターゲット・エージェント・マシン上のポート8088、7073および9001を使用します。ポート競合は、次のようなメッセージで示されます。
java.net.BindException: Address already in use: JVM_Bind
これはインストール・ディレクトリの次の場所にあります。
C:\OracleATS\logs\wls_oats.log
C:\OracleATS\logs\servers\AdminServer\logs\*.log
C:\OracleATS\\logs\agentmanager.log
ポートの空き確認するには、次のようにします。
コマンド・プロンプトでnetstat -a
と入力します。または、
次の場所からtcpview
ユーティリティをダウンロードして実行します。
CPUが100%になる場合に古いメッセージを削除するには、次のようにします。
Windowsの「コントロール パネル」で「管理ツール」から「サービス」を開き、Oracle Application Testing Suite Application Serviceを停止します。
<installdir>\oats\servers\AdminServer\data\store\defaultディレクトリにあるすべてのファイルを削除します。
Oracle Application Testing Suite Application Serviceを再起動します。
その他の確認事項:
複数のNICがある場合には、正しいIPアドレスにサービスがバインドされていることを確認します。コマンド・プロンプトでipconfig/all
と入力し、インタフェースの数を確認します。
問題が解決しない場合は、カスタマ・サポートに問い合せてください。
この項では、負荷テスト中に発生する可能性がある問題と、想定される原因および解決方法をリストします。
原因: 次の場合に発生する可能性があります。
Oracle Application Testing Suite Application Serviceがエージェントとは異なるユーザー・アカウントで実行されているため、ネットワーク・ドライブにアクセスできない。
保存されたシナリオに、必要なスクリプトまたはデータバンク・ファイルが含まれていない。これは、シナリオを別のマシンからコピーした場合に発生する可能性があります。
リポジトリとワークスペースの構造が、記録されたシナリオと異なる。これは、シナリオを別のマシンからコピーした場合に発生する可能性があります。
解決方法: 次の点を確認してください。
インストール・ディレクトリの次の場所で、サーバー・ログ<installdir>\oats\servers\AdminServer\logs\AdminServer.logのエラー・メッセージを確認します。
エラーがある場合は、「セッションを開始できません」の項の手順を参照してください。
Services.mscを使用し、エージェントが稼働しているアカウントを確認します。
このアカウントに対して、ネットワーク・パスが使用可能であることを確認します。「コントロール パネル」の「管理ツール」で「サービス」の「ログオン」を選択します。
このアカウントでログオンします。ユーザー・アカウントの変更方法は、3.1.4.2項「Oracle Load Testingエージェントの設定」を参照してください。
テストを実行するマシンとシナリオのコピー元であるマシンで、ワークスペースとリポジトリの構造が同じであることを確認します。
すべてのスクリプトとデータバンク・ファイルが存在することを確認します。不足しているスクリプトやデータバンク・ファイルがある場合には、コピー元のマシンから新しいマシンにコピーします。
原因: 次の場合に発生する可能性があります。
インストールが正常でなく、JMSWrapper.dllが登録されていない。
データベース・エラーが発生している。
エージェント・マネージャの設定に問題がある。
デュアルNICやファイアウォールなど、マシン間に接続の問題がある。
セッションのタイムアウト設定が低すぎる。
サーバーとエージェントの間でOracle Load Testingのバージョンに互換性がない。
解決方法: 次の点を確認してください。
インストール・ディレクトリの次の場所で、サーバー・ログ<installdir>\logs\agentmanager.logのエラー・メッセージを確認します。
エラーがある場合は、「セッションを開始できません」の項の手順を参照してください。
JMSWrapper.dllを登録する場合は、次の手順を実行します。
コマンド・プロンプトを開きます。
path=<installdir>\jdk\jre\bin;<installdir>\jdk\jre\bin\client;%path%を設定します。
コマンドRegsvr32 jmswrapを入力します。
データベース・エラーを確認する場合は、次の手順を実行します。
データベース管理のユーザー・インタフェースを開きます。
データベース・エラーを確認します。
デフォルトのエージェント・タイムアウト値を変更する場合は、次の手順を実行します。
Oracle Application Testing Suite Application Serviceを停止します。
oracle.load.agent.timeout.defaultの設定を変更します。この設定のデフォルト値は、OATSデータベースのOATSスキーマのDEFAULT_GENERAL_SETTINGS表にあります。カスタマ設定の値は、このスキーマのGENERAL_SETTINGS表にあります。
oracle.load.agent.timeout.defaulエントリを、秒単位で新しい値に変更します。
Oracle Application Testing Suite Application Serviceを再起動します。
マシンで別バージョンのOracle Load Testingが稼働している場合は、すべてのマシンに同じバージョンをインストールします。
症状: 負荷テスト中にユーザー・インタフェースが停止し、応答しなくなります。
原因: 次の場合に発生する可能性があります。
CPUの使用率が100%のとき。
メモリーが範囲外である。
解決方法: 次の点を確認してください。
インストール・ディレクトリの次の場所で、サーバー・ログのエラー・メッセージを確認します。
<installdir>\logs\wls_oats.log
エラーがある場合は、「セッションを開始できません」の項の手順を参照してください。
<installdir>\oats\servers\AdminServer\logsディレクトリに移動してAdminServer.logファイルを調べ、問題の性質を示す例外(複数ソケット・エラーとそれに続くセッションの強制終了など)がないかどうかを確認します。
イベント ビューアでシステム・ログを開き、ネットワーク警告が発生していないかどうかを確認します。
CPUが100%になる場合に古いメッセージを削除するには、次のようにします。
Windowsの「コントロール パネル」で「管理ツール」から「サービス」を開き、Oracle Application Testing Suite Application Serviceを停止します。
次の場所にあるすべてのファイルを削除します。
<installdir>\oats\servers\AdminServer\data\store\default directory.
メモリー不足エラーの場合には、次の手順を実行します。
Oracle Application Testing Suite Application Serviceを停止します。
レジストリ・エディタを開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle Application Testing Suite Application Service\Parametersを探します。
文字列値CmdLine
で引数-Xms256m
-Xmx1024m
を探します(実際の値は異なることに注意)。
引数-Xms
には、Weblogic Serverで使用可能なメモリー量を指定し、-Xmx
には最大値を指定します。
メモリーの最小値と最大値に必要な値を設定したら、レジストリ・エディタを閉じてマシンを再起動します。
Oracle Load Testingエージェント・サービスは、エージェント・プロセスの開始、プロセスがシャットダウンしたときの監視、Oracle Load Testingコントローラによって要求されたときのプロセスの停止などを実行します。エージェントは、プロセスの停止を認識すると必ずWindowsに対してそのプロセスのエグジット・コードを要求します。ここでは、Oracle Load Testingによってレポートされ、<installdir>\logs\agentmanager.logファイルに記録されるエグジット・コードの値について説明します。
次のいずれかの値が返されます。
ExitProcessまたはTerminateProcess関数で指定されるエグジット値。
プロセスのmainまたはWinMain関数からの戻り値。
プロセス停止の原因となった未処理の例外の例外値。
よく見られるエグジット・コードで知られている原因は、次のとおりです。
このコードは、コンソール・ウィンドウを手動で閉じたために、あるいはタスク マネージャの「アプリケーション」タブでアプリケーションを終了したためにJavaAgentプロセスが終了したときに返されます。
予期しないエージェントの終了。Code = 1
このコードは、WgPro.exeまたはJavaAgent.exeがWindowsのタスク マネージャの「プロセス」タブで直接終了されたときに返されます。
予期しないエージェントの終了。Code = 0
このコードは、エージェント・フォームが手動で、またはタスク マネージャの「アプリケーション」タブで閉じられたときに返されます。
JavaAgentプロセスが通常終了した場合は常に、エグジット・コード0がレポートされます。これは、たとえばユーザー・コールバック・コードがSystem.exit(1)
を呼び出す場合に発生します。
この項では、次の用語を使用します。
サーバー: ユーザーがブラウザをポイントするサーバー。たとえば、サーバーマシン上のOracle Application Testing Suite Application Serviceなどです。
リモート・データ・コレクタ・サーバー(RDCS): ユーザーがデータ・コレクタを起動しようとするマシン上で稼働しているWebLogicサーバー。これは、サーバーと同じWebLogicインスタンスの場合とそうでない場合があります。また、データ・コレクタ・マシン上のOracle Application Testing Suite Application Serviceとも言います。
エージェント・マネージャ: ユーザーがデータ・コレクタを起動しようとするマシン上で稼働しているサービスを開始するエージェントです。Oracle Load Testing Agent Serviceとも言います。
データ・コレクタ(DC): エージェント・マネージャによって起動されるデータ収集プロセス。
Ds.dcStartupFailed
このエラーは、エージェント・マネージャがDCプロセスを起動できなかった場合に発生します。これは、リモート・データ収集マシンにデータ・コレクタがインストールされていない場合に発生する可能性があります。インストール・ツリーにDataCollectorディレクトリがあることと実行可能ファイルがあることを確認して、ソフトウェアが正しくインストールされていることを確認します。
Ds.dcStartError
これは、リモート・データ収集サーバーとエージェント・マネージャとの通信に問題がある場合に発生します。次のような原因が考えられます。
エージェント・マネージャが起動していない: Oracle Load Testing Agent Serviceが稼働していることを確認し、必要な場合にはサービスを開始します。
リモート・データ収集マシンにデータ・コレクタがインストールされていない: インストール・ツリーにDataCollectorディレクトリがあることと実行可能ファイルがあることを確認して、ソフトウェアが正しくインストールされていることを確認します。
Ds.dcNotAvailable
これは、DCを起動したがRDCSと通信できない場合、またはDCからRDCSの通信にタイムアウト間隔以上の時間がかかった場合に発生します。次のような原因が考えられます。
DCマシンが低速: タイムアウト間隔を大きくします。データ・コレクタの起動タイムアウトは、RDCS上でoracle.propertiesファイルのoracle.datacollector.startup.timeout=90000
によって制御されます。
DCとRDCSの通信ポート番号が一致しない: DCはRDCSのポート番号をDataCollector\bin\hwmagent.txt:SERVER localhost:7073から決定します。RDSCポート番号はoracle.properties:oracle.port.dataCollector=7073で割り当てられています。
errorCreatingDSClient
これは、サーバーとRDCSの間で通信に問題がある場合に発生します。サーバーとRDCSが同じである場合、このエラーは発生しません。次のような原因が考えられます。
RDCSが起動していない: DCマシン上でOracle Application Testing Suite Application Serviceが稼働していることを確認します。
サーバーとRDCSの間の基本的なネットワーク接続: サーバーとRDCSの間の基本的なネットワーク接続を確認します。間にファイアウォールがある場合は、ポートを開く必要がありますが、ファイアウォールでNATを使用している場合は、この方法では解決されません。