OpenVMS AXP
オペレーティング・システム
OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き


前へ 次へ 目次 索引


6.3 移行したアプリケーションのデバッグとテスト

アプリケーションをOpenVMS AXPに移行した後,デバッグしなければなりません。

また,正しい操作が実行されるかどうかを調べるためにアプリケーションをテストすることも必要です。

6.3.1 デバッグ

OpenVMSオペレーティング・システムでは,次のデバッガが準備されています。

デバッグはAlpha AXPハードウェアで実行しなければなりません。

6.3.1.1 OpenVMS デバッガによるデバッグ

OpenVMS デバッガを使用して,移行したアプリケーションを AXPシステムでデバッグする場合には,次のことを考慮しなければなりません。

OpenVMS デバッガによるデバッグについての詳しい説明は,『デバッガ説明書』を参照してください。

6.3.1.2 Delta デバッガよるデバッグ

Delta デバッガを使用すれば,部分的または完全にトランスレートされたアプリケーションをデバッグできます。

トランスレートされたアプリケーション

トランスレートされたイメージをデバッグする場合には,次のことを確認しなければなりません。

トランスレートされたイメージのデバッグについての詳しい説明は,DECサービス(Alpha AXP Resource Center)にお問い合わせください。

アプリケーションの混在

ネイティブなAXPコードとトランスレートされたコードが混在するアプリケーションをデバッグするには,/TIE修飾子を使用してアプリケーションのネイティブな部分がコンパイルされているかどうかを確認しなければなりません。さらに,/NONATIVE_ONLYリンカ・オプションを使用してアプリケーションをリンクしなければなりません。

Delta デバッガによるデバッグについての詳しい説明は,『OpenVMS Delta/XDelta Debugger Manual』を参照してください。

6.3.2 テスト

移行したバージョンの性能と機能を元のVAXバージョンと比較するために,アプリケーションをテストしなければなりません。

テストではまず,VAXアプリケーションに対して一連のテストを実行することにより,アプリケーションに対して基準となる結果を設定します。

アプリケーションをAXPシステムで実行した後,次の2種類のテストを実行できます。

6.3.2.1 VAXテスト

新しいアーキテクチャを使用することにより,アプリケーションの一部が変更されるため,OpenVMS AXPにアプリケーションを移行した後,そのアプリケーションをテストすることは特に重要です。アプリケーションの変更によってエラーが発生するだけでなく,新しい環境では,VAXバージョンで検出されなかった問題が発生する可能性があります。

移行されたアプリケーションをテストするには,次の操作が必要です。

  1. 移行する前に,アプリケーションにとって必要な標準データを入手する

  2. アプリケーションだけでなく,一連のテストも移行する(テストがAXPでまだ準備されていない場合)。

  3. AXPシステムでテストを検証する

  4. 移行したアプリケーションに対して移行したテストを実行する

ここでは,リグレッション・テストとストレス・テストが役立ちます。ストレス・テストは,同期に関するプラットフォームの相違点をテストするために特に重要です。特に,複数の実行スレッドを使用するアプリケーションの場合は,ストレス・テストが役立ちます。

6.3.2.2 AXPテスト

標準テストは,移行したアプリケーションの機能を検証するためにかなり長くかかりますが,移行固有の問題を調べるためのテストをいくつか追加しなければなりません。特に次の点に注意してください。

6.4 移行したアプリケーションのソフトウェア・システムへの統合

再コンパイルまたはトランスレーションによってアプリケーションを移行した後,移行によって他のソフトウェアとのやりとりに問題が発生していないかどうかを確認しなければなりません。

VAX と Alpha AXP システム間の相互操作性に関する問題の原因として,次のことが考えられます。


付録 A
アプリケーション評価チェックリスト

このチェックリストの例は,OpenVMS AXPに移行する対象としてアプリケーションを評価するためにDECが使用したチェックリストをもとにしています。

質問の後の大括弧で囲んだコメントは,その質問の目的を正確に示しています。

アプリケーション評価チェックリスト

       
開発の履歴と計画
       
 1. アプリケーションは現在,他のオペレーティング・システムまたはハードウェア・アーキテクチャで実行されていますか? [  ] YES [  ] NO
  その場合には,アプリケーションは現在,RISCシステムで実行されていますか? [  ] YES [  ] NO
  [その場合には,OpenVMS AXPへの移行は容易に実行できます。]    
       
 2. 移行後のアプリケーションの開発/保守計画はどのようになっていますか?    
  a. 開発は行わない [  ]YES [  ] NO
  b. 保守リリースのみ [  ]YES [  ] NO
  c. 機能を追加または変更する [  ]YES [  ] NO
  d. VAXソースとAXPソースを個別に保守する [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,アプリケーションのトランスレートを考慮してください。bまたはcに対する回答が"YES"の場合には,アプリケーションの再コンパイルと再リンクによって得られる利点を評価してください。ただし,トランスレーションも可能です。VAXソースとAXPソースを個別に保守する場合,つまり,dに対する回答が"YES"の場合には,相互操作性と整合性に関する問題を考慮しなければなりません。特に,アプリケーションの異なるバージョンが,同じデータベースをアクセスできる場合には,このことを考慮しなければなりません。]    
       
外部的な依存性
       
 3. アプリケーションの開発環境を設定するために,どのようなシステム構成(CPU,メモリ,ディスク)が必要ですか?                 
  [この質問は移行に必要な資源の計画を立てるのに役立ちます。]    
       
 4. アプリケーションの典型的なユーザ環境を設定するために,どのようなシステム構成(CPU,メモリ,ディスク)が必要ですか? インストレーション検証プロシージャ,リグレッション・テスト,ベンチマーク,作業負荷も含めて 考慮してください。                 
  [この質問は,ユーザ環境全体をOpenVMS AXPで実現できるかどうかを,判断するのに役立ちます。]    
       
 5. アプリケーションで特殊なハードウェアが必要ですか? [  ] YES [  ] NO
  [この質問は,必要なハードウェアをOpenVMS AXPで使用できるかどうかと,アプリケーションにハードウェア固有のコードが含まれているかどうかを判断するのに役立ちます。]    
       
 6. a. アプリケーションは現在,OpenVMSのどのバージョンで実行されていますか?                 
  b. アプリケーションはOpenVMS VAXバージョン6.1で実行されていますか? [  ] YES [  ] NO
  c. アプリケーションはOpenVMS AXP で有効でない機能を使用しますか? [  ] YES [  ] NO
  [OpenVMS AXPへの移行の基礎となるのは,OpenVMS VAXバージョン6.1です。cに対する回答が"YES"の場合には,アプリケーションはOpenVMS AXPでまだサポートされていない機能を使用する可能性があり,またOpenVMS AXPの現在のバージョンと互換性のないOpenVMS RTL,または他の共有可能イメージに対してリンクされている可能性があります。]    
       
 7. アプリケーションを実行するために,レイヤード・プロダクトが必要ですか?    
  a. DECが提供するプロダクト(コンパイラRTL以外のプロダクト) [  ] YES [  ] NO
  b. サード・パーティが提供するプロダクト: [  ] YES [  ] NO
  [aに対する回答が"YES"のときに,OpenVMS AXPでDECのレイヤード・プロダクトが提供されているかどうかがよくわからない場合には,DECの担当者に質問してください。bに対する回答が"YES"の場合には,サード・パーティ・プロダクトの業者に問い合わせてください。]    
       
アプリケーションの構造
       
 8. アプリケーションのサイズは?    
  モジュール数は?                 
  コードの行数またはキロバイト数は?                 
  必要なディスク空間?                 
  [この質問は,移行のために必要な作業量と資源の"サイズ"を判断するのに役立ちます。]    
       
 9. a. アプリケーションはどの言語で作成されていますか?(複数の言語が使用されている場合には,各言語の割合を示してください。)                 
  [コンパイラがまだ提供されていない場合には,アプリケーションをトランスレートするか,または別の言語で再作成しなければなりません。]    
  b. VAX MACROを使用している場合には,その理由は何ですか?                 
  c. VAX MACROコードの機能を各高級の言語コンパイラ,またはシステム・サービス(プロセス名を検索するための$GETJPIなど)で実行できますか? [  ] YES [  ] NO
  [AXPアプリケーションで,VAX MACROや MACRO--64 Assembler for OpenVMS AXPを使用することは,望ましくありません。アプリケーションを最初に開発した段階では,まだ提供されていなかった OpenVMSシステム・サービスを呼び出すことにより,特定のユーザ・モード・アプリケーションで,アセンブリ言語コードを他のコードに置換することができます。]    
       
 10. a. アプリケーションを構成する,すべてのソース・ファイルをアクセスできますか? [  ] YES [  ] NO
  b. DECサービスの使用を検討している場合には,DECがこれらのソース・ファイルとビルド・プロシージャをアクセスできますか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,ソース・ファイルを入手できない部分の移行はトランスレーションによって実行しなければなりません。bに対する回答が "YES"の場合には,広範囲にわたってDECの移行サービスを利用できます。]    
       
 11. a. アプリケーションをテストするために必要なリグレッション・テストが準備されていますか? [  ]YES [  ] NO
  b. 準備されている場合には,DEC Test Managerが必要ですか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,これらのリグレッション・テストの移行を考慮しなければなりません。OpenVMS AXPの初期リリースでは,DEC Test Managerは提供されません。リグレッション・テストでこのプロダクトが必要な場合には,DECの担当者にご連絡ください。]    
       
VAXアーキテクチャへの依存
       
12. a. アプリケーションで H浮動小数点データ型を使用しますか? [  ] YES [  ] NO
  b. アプリケーションでD浮動小数点データ型を使用しますか? [  ] YES [  ] NO
  c. アプリケーションでD浮動小数点を使用する場合,56ビットの精度(16桁の有効桁数)が必要ですか,または53ビットの精度(15桁の有効桁数)で十分ですか? [  ] 56ビット [  ] 53ビット
  [aに対する回答が"YES"の場合には,H浮動小数点の互換性を維持するためにアプリケーションをトランスレートするか,またはデータをG浮動小数点,S浮動小数点,またはT浮動小数点フォーマットに変換しなければなりません。bに対する回答が"YES"の場合には,アプリケーションをトランスレートして,VAXでの D浮動小数点の完全な56ビットの精度の互換性を維持するか,AXPシステムが準備している53ビットの精度のD-floatinフォーマットを使用するか,またはデータを G浮動小数点,S浮動小数点,またはT浮動小数点のいずれかのフォーマットに変換しなければなりません。]    
       
13. a. アプリケーションで大量のデータ,またはデータ構造を使用しますか? [  ] YES [  ] NO
  b. データがバイト,ワード,またはロングワードでアラインされていますか? [  ] YES [  ] NO
  [aに対する回答が"YES"であり,bに対する回答が"NO"の場合には,AXPの最適な性能を実現するために,データを自然なアラインメントにすることを考慮しなければなりません。多くのプロセスで共有されるグローバル・セクションにデータが格納されている場合や,メイン・プログラムとASTとの間でデータが共有される場合には,データを自然なアラインメントにしなければなりません。]    
       
14. コンパイラがデータをアラインする方法に関して,アプリケーションで何らかの仮定を設定していますか(つまり,データ構造がパックされていること,自然なアラインメントにされていること,ロングワードでアラインされていることなどをアプリケーションで仮定していますか)? [  ] YES [  ] NO
  [回答が"YES"である場合には,AXPプラットフォームでのコンパイラの動作と,VAXプラットフォームでのコンパイラの動作の違いから発生する,移植性と相互操作性の問題を考慮しなければなりません。コンパイラ・スイッチによって,アラインメントは強制的に設定されるため,データ・アラインメントに関するコンパイラの省略時の設定はさまざまです。通常,VAXシステムでは,省略時のデータ・アラインメントはパック形式のアラインメントですが,AXPコンパイラの省略時の設定は,可能な限り自然なアラインメントです。]    
       
15. a. アプリケーションで,ページ・サイズが 512バイトであると仮定していますか? [  ] YES [  ] NO
  b. アプリケーションで,メモリ・ページがディスク・ブロックと同じサイズであると仮定していますか? [  ] YES [  ] NO
  [aに対する回答が"YES"の場合には,Alpha AXPのページ・サイズに対応できるように,アプリケーションを準備しなければなりません。Alpha AXPのページ・サイズは512バイトよりはるかに大きく,各システムで異なります。したがって,ページ・サイズを明示的に参照することは避け,可能な限り,メモリ管理システム・サービスとRTLルーチンを使用してください。bに対する回答が "YES"の場合には,ディスク・セクションをメモリにマッピングする $CRMPSCシステム・サービスと,$MGBLSCシステム・サービスに対するすべての呼び出しを確認し,これらの仮定を削除しなければなりません。]    
       
16. アプリケーションで,OpenVMSシステム・サービスを呼び出しますか? [  ] YES [  ] NO
  特に,次の操作を実行するサービスを呼び出しますか?    
  a. グローバル・セクションを作成,またはマッピングするシステム・サービス(たとえば$CRMPSC, $MGBLSC,$UPDSEC) [  ] YES [  ] NO
  b. ワーキング・セットを変更するシステム・サービス(たとえば $LCKPAG,$LKWSET) [  ] YES [  ] NO
  c. 仮想アドレスを操作するシステム・サービス(たとえば $CRETVA, $DELTVA) [  ]YES [  ] NO
  [これらの質問に対する回答が"YES"の場合には,コードを調べ,必要な入力パラメータが正しく指定されているかどうかを判断しなければなりません。]    
       
17. a. アプリケーションで複数の協調動作プロセスを使用しますか? [  ] YES [  ] NO
  使用する場合:    
  b. プロセスの数?                 
  c. 使用するプロセス間通信方式?                 
   

[  ] $CRMPSC [  ]メールボックス [  ] SCS [  ]その他
[  ] DLM [  ] SHM,IPC [  ] SMG$ [  ] STR$

   
       
  d. 他のプロセスとの間でデータを共有するために,グローバル・セクション($CRMPSC)を使用する場合には,どのような方法でデータ・アクセスの同期をとりますか?                 
  [この質問は,明示的な同期を使用しなければならないのかどうかを判断し,アプリケーションの各要素間で,同期を保証するのに必要な作業レベルを判断するのに役立ちます。一般に,高いレベルの同期方式を使用すれば,アプリケーションをもっとも容易に移行できます。]    
       
18. アプリケーションは現在,マルチプロセッサ(SMP)環境で実行されていますか? [  ] YES [  ] NO
  [回答が"YES"の場合には,アプリケーションはすでに適切なプロセス間同期方式を採用している可能性が高いと言えます。]    
       
19. アプリケーションで,AST(非同期システム・トラップ)メカニズムを使用しますか? [  ] YES [  ] NO
  [回答が"YES"の場合には,ASTとメイン・プロセスが,プロセス空間でデータ・アクセスを共有するかどうかを判断しなければなりません。共有する場合には,明示的にこのようなアクセスの同期をとらなければなりません。]    
       
20. a. アプリケーションに条件ハンドラが含まれていますか? [  ] YES [  ] NO
  b. アプリケーションで,算術演算例外の即時報告が必要ですか? [  ] YES [  ] NO
  [Alpha AXPアーキテクチャでは,算術演算例外はただちに報告されません。条件ハンドラが条件を修正しようとするときに,例外の原因となった命令シーケンスを再起動する場合には,ハンドラを変更しなければなりません。]    
       
21. アプリケーションは特権モードで実行されますか,またはSYS.STBに対してリンクされますか? [  ] YES [  ] NO
  その場合は理由を示してください。                 
  [アプリケーションがOpenVMSエグゼクティブに対してリンクされるか,または特権モードで実行される場合には,ネイティブなAXPイメージとして実行されるように,アプリケーションを変更しなければなりません。]    
       
22. 独自のデバイス・ドライバを作成しますか? [  ] YES [  ] NO
  [OpenVMS AXPの初期リリースでは,ユーザ作成デバイス・ドライバはサポートされません。この機能が必要な場合には,DECの担当者にご連絡ください。]    
       
23. アプリケーションで,接続/割り込みメカニズム(connect-to-interrupt)を使用しますか? [  ] YES [  ]NO
  使用する場合には,どのような機能を使用しますか?                 
  [接続/割り込みは,OpenVMS AXPシステムでサポートされません。この機能が必要な場合には,DECの担当者にご連絡ください。]    
       
24. アプリケーションで,機械語を直接作成または変更しますか? [  ] YES [  ] NO
  [OpenVMS AXPでは,命令ストリームに書き込まれた命令が,正しく実行されることを保証するには,多大な注意が必要です。]    
       
25. アプリケーションのどの部分が性能にもっとも大きな影響を与えますか? それは入出力ですか,浮動小数点ですか,メモリですか,リアルタイムですか(つまり,割り込み待ち時間)。                 
  [この質問は,アプリケーションの各部分に対する作業に優先順位をつけるのに役立ち,お客様にとってもっとも意味のある性能向上を,DECが計画するのに役立ちます。]    


前へ 次へ 目次 索引