When you want to use a external archiving scenario maybe with Barcode linking to SAP, you will need to create a new archiving task in IBM Content Navigators Taskmanager. This can fail with an HTTP500 error because you are using an incompatible JPA specifiation within your WebSphere Application Server instance. Starting with WebSphere Application Server V9.0 there are two version bundled with the product. As IBM Content Navigators Taskmanager is designed to use the JPA 2.0 specification it does not work with JPA 2.1 specification that is the default one when you create an new WebSphere 9.0 server. You will receive the following database error in your SystemOut.log when you save the new created task.

javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services – 2.6.8.WAS-v20200108-cc2fb8c): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.TASK, DRIVER=4.16.53
Error Code: -204
Call: SELECT ID, AUTO_RESUME, CREATED_BY, DESCRIPTION, END_TIME, HANDLER_NAME, LOCAL_STATE, LOG_LEV, NAME, NOTIFY_INFO, PARENT, REPEAT_PERIOD, SERVER_ID, START_TIME, STATUS, STOP_TIME, SUCCESS_CNT, TASK_INFO, TASK_MODE, TIMER_HANDLE, TOTAL_CNT FROM TASK WHERE (((TASK_MODE = 4) OR (TASK_MODE = 1)) AND ((STATUS = 256) OR ((TIMER_HANDLE <> ‘done’) AND (STATUS = 32))))
Query: ReadAllQuery(referenceClass=Task sql=”SELECT ID, AUTO_RESUME, CREATED_BY, DESCRIPTION, END_TIME, HANDLER_NAME, LOCAL_STATE, LOG_LEV, NAME, NOTIFY_INFO, PARENT, REPEAT_PERIOD, SERVER_ID, START_TIME, STATUS, STOP_TIME, SUCCESS_CNT, TASK_INFO, TASK_MODE, TIMER_HANDLE, TOTAL_CNT FROM TASK WHERE (((TASK_MODE = 4) OR (TASK_MODE = 1)) AND ((STATUS = 256) OR ((TIMER_HANDLE <> ‘done’) AND (STATUS = 32))))”)
at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:382)

To solve the issue you will need to change the JPA specification of the WAS instance to 2.0 instead of 2.1. The following section will guide you through this procedure.

I will describe the procedure for a stand-alone server. Please refer to the following infocenter article if you need the procedure for a clustered environment.

https://www.ibm.com/support/knowledgecenter/SSEQTP_9.0.5/com.ibm.websphere.base.doc/ae/tejb_idmod_jpaspec.html

At first open an command prompt or linux/unix shell and run the “wsadmin” tool in the servers bin folder.

Check the available JPA versions by running “print AdminTask.listSupportedJPASpecifications(‘[-versionOnly]’)”

Set the JPA level to 2.0 for you WAS server instance by running “AdminTask.modifyJPASpecLevel(‘[-node p8ceNode01 -server CPE_server1 -specLevel 2.0]’)”

Save you configuration with “AdminConfig.save()” and restart the server.

Thats it! Now you can create the required taskmanager scheduled tasks for you ICCSAP archiving scenario.

Leave a Reply

Your email address will not be published. Required fields are marked *