はじめに
今回Integration SuiteでSAP標準アダプターを利用したiFlowを作成し、SAP Cloud Transport Management(cTMS)を使って開発環境から本番環境へ移送しました。
本番環境でいざiFlowのデプロイを行おうとしたところ、エラーとなって原因がわからず解決まで困りましたので、その内容について記載します。
移送については以下で概要を書いています。
SAP Cloud Transport Managementを利用したiFlowの移送についての概要
遭遇したエラー
開発環境から本番環境へ、SAP標準アダプターを利用したiFlow移送しデプロイをしたところ、以下のエラーが発生しました。
[CONTENT][CONTENT_DEPLOY][RuntimeError] : {"message":"CAMEL_CONTEXT_NOT_STARTED"}
原因調査
調べたところ以下のSAP noteが見つかり、iFlowで利用しているSAP標準アダプターのバージョンが原因なのか?と思い当たります。
SAP note:https://me.sap.com/notes/0003564160
Designからバージョンを確認してみるも、開発と本番環境は同じバージョンでした。
他に原因があるのか?と色々と確認・調査をしましたが、原因が見つからず困り果てていたところ、DesignではなくMonitor>Manage Integration Contentから確認すると、開発環境のみSAPのデプロイによってバージョンが上がっていることが判明しました。
おそらくの原因
なぜ、開発と本番環境でバージョンの差異が発生したのか。
今回、本番環境への移送と、本番環境でのデプロイのタイミングがずれておりました。
本番環境への移送とデプロイの間に、SAPによる内部アップデートが発生、開発環境はデプロイ済みでしたので内部アップデートによりバージョンが更新されたものの、本番環境はデプロイしていなかったので内部アップデートの対象外となり、バージョンに差異が発生したのではと考えられます。
簡単な流れとしては以下です。
解決のために
ひとまずもう一度、開発から本番環境へアダプターを移送しましたが、Designから確認できるバージョンが適用されるのか、バージョンは更新されませんでした。どうやらアダプター自体を差し替える(一度削除の上、改めて追加)必要があるようです。
今回は開発と本番環境のバージョンを揃えるため、開発環境でアダプターを差し替え、本番環境へ移送しました。本番環境への移送時、またしてもエラーが発生しました。
エラーの内容は「UniquenessViolationException」です。
開発環境のアダプターを差し替えているので、本番環境とアダプターの名称は同じですが、内部IDが変わってしまっています。そのため、本番環境のアダプターが入っているパッケージを削除してから再度移送を実施することで、やっとエラーが解決しました。
おわりに
今回はアダプターの移送とデプロイの期間が空いてしまっていたので、移送時にデプロイまで行っておけばよかったと振り返って思いました。そうすれば今回のエラーは避けられたかと思います。
またバージョンも、どこから確認するかで違う場合があるのは今回初めて知りました。次回以降、気をつけたいと思います。