Dear all,
we have integrated our IFS Cloud with e-days using restAPI and IFS Connect. There are outbound restApi calls with callback function stored in API package in IFS.
The integration works fine, however from time to time we need to re-deploy the API package with the callback function to deploy bug corrections or improvements.
After re-deployment of the API we are always refreshing all server caches, but despite that restApi messages start to fail with the following error:
“Caused by: java.sql.SQLException: ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of has been invalidated
ORA-04061: existing state of package body "IFSAPP.ORI_HCM_EDAYS_API" has been invalidated
ORA-04065: not executed, altered or dropped package body "IFSAPP.ORI_HCM_EDAYS_API"
ORA-06508: PL/SQL: could not find program unit being called: "IFSAPP.ORI_HCM_EDAYS_API"
I would also like to mention that our MTS server is running 1 pod for connect and 4 odata pods.
Is there any tip what is a correct procedure for the API re-deployment to avoid restApi messages failing with this error?
Is restart of connect or odata pod(s) needed, or is it odata cashe refresh needed or the queue needs to be restarted? I appreciate you extend technical documentation with this information.
Thanks Jan
Page 1 / 1
Did you ever discover any best practices?
Hi
yes, since we are running several restApi integrations I had to find some way out.
The restart of MTS after the API deployment is the most reliable way to avoid API state issues, however this is not always feasible.
If you are running remote deployment of IFS Cloud, you can apply following steps/commands in K8s without any user disturbance.
- Deploy new version of API (optionally you can add debug information)
- Apply following command in K8s
- kubectl rollout restart deployment ifsapp-client-services -n ifsoctest;kubectl rollout restart deployment ifsapp-odata -n ifsoctest
- ifsoctest is the name of the namespace
- wait to get new pods created and old terminated
- kubectl rollout restart deployment ifsapp-client-services -n ifsoctest;kubectl rollout restart deployment ifsapp-odata -n ifsoctest
- Apply following command in K8s
- kubectl rollout restart deployment ifsapp-connect -n ifsoctest
- ifsoctest is the name of the namespace
- wait to get new pods created and old terminated
- kubectl rollout restart deployment ifsapp-connect -n ifsoctest
- You can run your restAPI calls without any issues
Hope this helps
BR Jan
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.