Hi all,
I create a BP that received a request HTTP and get parameter from request and execute a simple INNER JOIN between MBX_MESSAGE and MBX_PATH in B2Bi database, but sometimes this is very slow, analysing the database, the B2Bi execute many query like similar example bellow, causing concurrency, someone already see something like this? how solve this?
SELECT D.NAME AS WFD_NAME ,
SESS.SESSION_ID AS SESSION_ID ,
SESS.SESSION_ARCHIVE_ID ,
SESS.CHILD_SESSIONID ,
SESS.CON_START_TIME ,
SESS.CON_END_TIME ,
SESS.DIS_START_TIME ,
SESS.DIS_END_TIME ,
SESS.IS_LOCAL_INIT ,
SESS.ADAPTER_NAME ,
SESS.ADAPTER_TYPE ,
SESS.PS_INSTANCE ,
SESS.CON_IS_SUCCESS ,
SESS.PROTOCOL ,
SESS.SECURE_MODE ,
SESS.ENDPOINT1 ,
SESS.ENDPORT1 ,
SESS.ENDPOINT2 ,
SESS.ENDPORT2 ,
SESS.DIS_IS_SUCCESS ,
SESS.STATUS_CODE ,
SESS.ERROR_MSG ,
SESS.START_WFID ,
SESS.START_WFSTEP ,
SESS.END_WFID ,
SESS.END_WFSTEP ,
SESS.PRINCIPAL ,
XFER.XFER_ID ,
XFER.SESSION_ARCHIVE_ID AS XFER_SESSION_ARCHIVE_ID,
XFER.IS_PUT ,
XFER.DOC_ID ,
XFER.IS_SUCCESS ,
XFER.FILE_SIZE ,
XFER.START_TIME ,
XFER.END_TIME ,
XFER.MBOX_PATH ,
XFER.MESSAGE_ID ,
XFER.MESSAGE_NAME ,
XFER.REMOTE_FILENAME ,
XFER.DOC_NAME ,
XFER.STATUS_CODE AS XFER_STATUS_CODE ,
XFER.ERROR_MSG AS XFER_ERROR_MSG ,
XFER.IS_BIN_XFER ,
XFER.KBYTES_XFER ,
XFER.WFID ,
XFER.WFSTEP ,
XFER.IS_SECURE
FROM ACT_SESSION SESS
LEFT OUTER JOIN ACT_XFER XFER
ON SESS.SESSION_ID = XFER.SESSION_ID
LEFT OUTER JOIN WORKFLOW_CONTEXT WFC
ON SESS.START_WFID = WFC.WORKFLOW_ID
AND WFC.ACTIVITYINFO_ID = 0
LEFT OUTER JOIN WFD D
ON D.WFD_ID = WFC.WFD_ID
WHERE SESS.CON_END_TIME >= TO_DATE(:1 , 'mm/dd/yyyy hh24:mi:ss')
AND SESS.DIS_END_TIME IS NULL
AND SESS.PROTOCOL IN ('SFTP','MailboxService','HTTP','FTP','Connect:Direct')
AND SESS.ADAPTER_NAME NOT IN ('MESAHttpServerAdapter')
UNION
SELECT D.NAME AS WFD_NAME ,
SESS.SESSION_ID AS SESSION_ID ,
SESS.SESSION_ARCHIVE_ID ,
SESS.CHILD_SESSIONID ,
SESS.CON_START_TIME ,
SESS.CON_END_TIME ,
SESS.DIS_START_TIME ,
SESS.DIS_END_TIME ,
SESS.IS_LOCAL_INIT ,
SESS.ADAPTER_NAME ,
SESS.ADAPTER_TYPE ,
SESS.PS_INSTANCE ,
SESS.CON_IS_SUCCESS ,
SESS.PROTOCOL ,
SESS.SECURE_MODE ,
SESS.ENDPOINT1 ,
SESS.ENDPORT1 ,
SESS.ENDPOINT2 ,
SESS.ENDPORT2 ,
SESS.DIS_IS_SUCCESS ,
SESS.STATUS_CODE ,
SESS.ERROR_MSG ,
SESS.START_WFID ,
SESS.START_WFSTEP ,
SESS.END_WFID ,
SESS.END_WFSTEP ,
SESS.PRINCIPAL ,
XFER.XFER_ID ,
XFER.SESSION_ARCHIVE_ID AS XFER_SESSION_ARCHIVE_ID,
XFER.IS_PUT ,
XFER.DOC_ID ,
XFER.IS_SUCCESS ,
XFER.FILE_SIZE ,
XFER.START_TIME ,
XFER.END_TIME ,
XFER.MBOX_PATH ,
XFER.MESSAGE_ID ,
XFER.MESSAGE_NAME ,
XFER.REMOTE_FILENAME ,
XFER.DOC_NAME ,
XFER.STATUS_CODE AS XFER_STATUS_CODE ,
XFER.ERROR_MSG AS XFER_ERROR_MSG ,
XFER.IS_BIN_XFER ,
XFER.KBYTES_XFER ,
XFER.WFID ,
XFER.WFSTEP ,
XFER.IS_SECURE
FROM ACT_XFER XFER,
ACT_SESSION SESS
LEFT OUTER JOIN WORKFLOW_CONTEXT WFC
ON SESS.START_WFID = WFC.WORKFLOW_ID
AND WFC.ACTIVITYINFO_ID = 0
LEFT OUTER JOIN WFD D
ON D.WFD_ID = WFC.WFD_ID
WHERE XFER.START_TIME >= TO_DATE(:2 , 'mm/dd/yyyy hh24:mi:ss')
AND XFER.END_TIME IS NULL
AND XFER.SESSION_ID = SESS.SESSION_ID
AND SESS.PROTOCOL IN ('SFTP','MailboxService','HTTP','FTP','Connect:Direct')
AND SESS.ADAPTER_NAME NOT IN ('MESAHttpServerAdapter')
UNION
SELECT D.NAME AS WFD_NAME ,
SESS.SESSION_ID AS SESSION_ID ,
SESS.SESSION_ARCHIVE_ID ,
SESS.CHILD_SESSIONID ,
SESS.CON_START_TIME ,
SESS.CON_END_TIME ,
SESS.DIS_START_TIME ,
SESS.DIS_END_TIME ,
SESS.IS_LOCAL_INIT ,
SESS.ADAPTER_NAME ,
SESS.ADAPTER_TYPE ,
SESS.PS_INSTANCE ,
SESS.CON_IS_SUCCESS ,
SESS.PROTOCOL ,
SESS.SECURE_MODE ,
SESS.ENDPOINT1 ,
SESS.ENDPORT1 ,
SESS.ENDPOINT2 ,
SESS.ENDPORT2 ,
SESS.DIS_IS_SUCCESS ,
SESS.STATUS_CODE ,
SESS.ERROR_MSG ,
SESS.START_WFID ,
SESS.START_WFSTEP ,
SESS.END_WFID ,
SESS.END_WFSTEP ,
SESS.PRINCIPAL ,
XFER.XFER_ID ,
XFER.SESSION_ARCHIVE_ID AS XFER_SESSION_ARCHIVE_ID,
XFER.IS_PUT ,
XFER.DOC_ID ,
XFER.IS_SUCCESS ,
XFER.FILE_SIZE ,
XFER.START_TIME ,
XFER.END_TIME ,
XFER.MBOX_PATH ,
XFER.MESSAGE_ID ,
XFER.MESSAGE_NAME ,
XFER.REMOTE_FILENAME ,
XFER.DOC_NAME ,
XFER.STATUS_CODE AS XFER_STATUS_CODE ,
XFER.ERROR_MSG AS XFER_ERROR_MSG ,
XFER.IS_BIN_XFER ,
XFER.KBYTES_XFER ,
XFER.WFID ,
XFER.WFSTEP ,
XFER.IS_SECURE
FROM ACT_SESSION SESS
LEFT OUTER JOIN ACT_XFER XFER
ON SESS.SESSION_ID = XFER.SESSION_ID
LEFT OUTER JOIN WORKFLOW_CONTEXT WFC
ON SESS.START_WFID = WFC.WORKFLOW_ID
AND WFC.ACTIVITYINFO_ID = 0
LEFT OUTER JOIN WFD D
ON D.WFD_ID = WFC.WFD_ID
WHERE SESS.DIS_END_TIME >= TO_DATE(:3 , 'mm/dd/yyyy hh24:mi:ss')
AND SESS.PROTOCOL IN ('SFTP','MailboxService','HTTP','FTP','Connect:Direct')
AND SESS.ADAPTER_NAME NOT IN ('MESAHttpServerAdapter')
UNION
SELECT D.NAME AS WFD_NAME ,
SESS.SESSION_ID AS SESSION_ID ,
SESS.SESSION_ARCHIVE_ID ,
SESS.CHILD_SESSIONID ,
SESS.CON_START_TIME ,
SESS.CON_END_TIME ,
SESS.DIS_START_TIME ,
SESS.DIS_END_TIME ,
SESS.IS_LOCAL_INIT ,
SESS.ADAPTER_NAME ,
SESS.ADAPTER_TYPE ,
SESS.PS_INSTANCE ,
SESS.CON_IS_SUCCESS ,
SESS.PROTOCOL ,
SESS.SECURE_MODE ,
SESS.ENDPOINT1 ,
SESS.ENDPORT1 ,
SESS.ENDPOINT2 ,
SESS.ENDPORT2 ,
SESS.DIS_IS_SUCCESS ,
SESS.STATUS_CODE ,
SESS.ERROR_MSG ,
SESS.START_WFID ,
SESS.START_WFSTEP ,
SESS.END_WFID ,
SESS.END_WFSTEP ,
SESS.PRINCIPAL ,
XFER.XFER_ID ,
XFER.SESSION_ARCHIVE_ID AS XFER_SESSION_ARCHIVE_ID,
XFER.IS_PUT ,
XFER.DOC_ID ,
XFER.IS_SUCCESS ,
XFER.FILE_SIZE ,
XFER.START_TIME ,
XFER.END_TIME ,
XFER.MBOX_PATH ,
XFER.MESSAGE_ID ,
XFER.MESSAGE_NAME ,
XFER.REMOTE_FILENAME ,
XFER.DOC_NAME ,
XFER.STATUS_CODE AS XFER_STATUS_CODE ,
XFER.ERROR_MSG AS XFER_ERROR_MSG ,
XFER.IS_BIN_XFER ,
XFER.KBYTES_XFER ,
XFER.WFID ,
XFER.WFSTEP ,
XFER.IS_SECURE
FROM ACT_XFER XFER,
ACT_SESSION SESS
LEFT OUTER JOIN WORKFLOW_CONTEXT WFC
ON SESS.START_WFID = WFC.WORKFLOW_ID
AND WFC.ACTIVITYINFO_ID = 0
LEFT OUTER JOIN WFD D
ON D.WFD_ID = WFC.WFD_ID
WHERE XFER.END_TIME >= TO_DATE(:4 , 'mm/dd/yyyy hh24:mi:ss')
AND XFER.SESSION_ID = SESS.SESSION_ID
AND SESS.PROTOCOL IN ('SFTP','MailboxService','HTTP','FTP','Connect:Direct')
AND SESS.ADAPTER_NAME NOT IN ('MESAHttpServerAdapter')
ORDER BY SESSION_ID,
XFER_ID
)
WHERE ROWNUM <5000
------------------------------
Douglas Rezende
------------------------------
#B2BIntegration#SupplyChain