MODERRORオプションは、指定した反復回数内でモデルの連立方程式のブロックが解決しない場合にOracle OLAPが実行するアクションを決定するオプションです。
パラメータ
(デフォルト)現行の出力ファイルにエラー・メッセージを送信し、モデルの実行を停止します。
現行の出力ファイルに警告メッセージを送信し、現行のブロックの実行を停止して、モデル内の次のブロックで実行が再開されます。
使用上の注意
ブロックの解決の失敗
連立ブロックのすべての方程式が収束したと判定されると、ブロックは解決されたとみなされます。いずれかの方程式が、指定した反復回数内に発散するかまたは収束に失敗すると、ブロックの解決は失敗し、エラーが発生します。MODERRORでは、エラーが発生したときにOracle OLAPが実行するアクションを制御します。
モデルにおける連立ブロックの収束の達成
エラーが発生した際に、連立ブロックの解決を制御する1つ以上のオプションの値を変更することで、ブロックの収束を達成できる場合があります。たとえば、試行する反復の回数を増やすことによって、収束および発散を判定する際に使用する基準を変更できます。
「STOP」の使用
MODERRORがSTOP
に設定されており、エラーが原因でモデルの実行が停止した場合、MODEL.XEQRPTプログラムを実行すると、モデルの実行についてのレポートを生成できます。レポートには、解決に失敗したブロックが示され、連立ブロックの解決に使用されたモデル・オプションの値が表示されます。
「CONTINUE」の使用
MODERRORがCONTINUE
に設定されており、モデルの1つのブロックが連立ブロックで、そのブロックが発散するかまたは収束に失敗した場合、Oracle OLAPによって、モデルの残りのブロックが実行されます。
さらに、モデルのディメンションではないソリューション変数の追加のディメンションのステータスにある残りの値に対しても、Oracle OLAPによってモデルが実行されます。この場合、モデルの実行の終了後にMODEL.XEQRPTプログラムを実行すると、この追加のディメンションの最後の値の解決に関するレポートが生成されます。
モデルが追加のディメンションの最後の値に対して実行されたときに、モデルの連立ブロックが収束した場合は、それ以前に別のディメンション値に対するモデルの実行が失敗していても、MODEL.XEQRPT
は、ブロックが解決されたとしてレポートします。エラーが発生したディメンション値についてのMODEL.XEQRPT
を参照するには、MODERRORをSTOP
に設定し、モデルを再実行します。
例
例5-52 モデルのデバッグ
この例では、OLAP Worksheet経由で接続し、コマンド入力ウィンドウに次の文を入力するとします。連立ブロックが収束に失敗したときにmyModel
モデル(連立方程式のブロックを含むモデル)をデバッグできるように、文ではMODERRORをDEBUG
に設定しています。
MODERROR = 'DEBUG' myModel actual
連立ブロックが収束に失敗した場合は、OLAP Worksheetのコマンド入力ウィンドウにOracle OLAPコマンドまたはデバッガ・コマンドを入力します。ここでは、ソリューション変数actual
がdivision
によってディメンション化されているため、division
の現行の値を表示します。
SHOW division Camping