Problem:
After running the SYSAUDIT report, the following errors appear under Integration Broker Audits:
(IBRK-10): IB Routing referencing invalid handlers: Routing On Send Handler On Receive Handler - ------ --------------- ------------------ ~GENERATED~17288 ACK 1 Total Rows
Solution:
Log on to SQL Server Management Studio and run the following queries against fsdev:
select * from PSIBRTNGDEFN where ROUTINGDEFNNAME = '~GENERATED~17288' select * from PSIBRTNGDEFN where ONRCVHDLRNAME = 'ACK' select ONRCVHDLRNAME, count(*) from PSIBRTNGDEFN group by ONRCVHDLRNAME select * from PSSRVHDLRRCV_VW
The outputs were:
ROUTINGDEFNNAME EFFDT VERSION EFF_STATUS SENDERNODENAME RECEIVERNODENAME RTNGTYPE IB_SYNCHNONBLOCK IB_OPERATIONNAME VERSIONNAME CONNOVERRIDE CONNGATEWAYID CONNID LOGMSGDTLFLG ONSNDHDLRNAME ONRCVHDLRNAME GENERATED IB_LOCALIDFLG LASTUPDDTTM LASTUPDOPRID OBJECTOWNERID DESCR DESCRLONG ------------------------------ ----------------------- ----------- ---------- --------------------------------------------------------- ~GENERATED~17288 2005-10-21 00:00:00.000 6 I ~~ANY~~ PSFT_EP R N CREATE_WORKLIST_ITEM V1 N 2 ACK Y 2 2008-12-30 11:38:38.000 VP1 PPT GENERATED NULL (1 row(s) affected) ROUTINGDEFNNAME EFFDT VERSION EFF_STATUS SENDERNODENAME RECEIVERNODENAME RTNGTYPE IB_SYNCHNONBLOCK IB_OPERATIONNAME VERSIONNAME CONNOVERRIDE CONNGATEWAYID CONNID LOGMSGDTLFLG ONSNDHDLRNAME ONRCVHDLRNAME GENERATED IB_LOCALIDFLG LASTUPDDTTM LASTUPDOPRID OBJECTOWNERID DESCR DESCRLONG ------------------------------ ----------------------- ----------- ---------- --------------------------------------------------------- ~GENERATED~17288 2005-10-21 00:00:00.000 6 I ~~ANY~~ PSFT_EP R N CREATE_WORKLIST_ITEM V1 N 2 ACK Y 2 2008-12-30 11:38:38.000 VP1 PPT GENERATED NULL (1 row(s) affected) ONRCVHDLRNAME COUNT(*) ------------------------------ ----------- 1500 ACK 1 (2 row(s) affected) IB_OPERATIONNAME ONRCVHDLRNAME DESCR ------------------------------ ------------------------------ --------------------------- CREATE_WORKLIST_ITEM OnAckForMarkedWorkedResp Create worklist entry (1 row(s) affected)
On fsdmo, ran the following queries:
select * from PSIBRTNGDEFN where ROUTINGDEFNNAME = '~GENERATED~17288' select * from PSIBRTNGDEFN where ONRCVHDLRNAME = 'ACK' select ONRCVHDLRNAME, count(*) from PSIBRTNGDEFN group by ONRCVHDLRNAME select * from PSSRVHDLRRCV_VW
The outputs were:
ROUTINGDEFNNAME EFFDT VERSION EFF_STATUS SENDERNODENAME RECEIVERNODENAME RTNGTYPE IB_SYNCHNONBLOCK IB_OPERATIONNAME VERSIONNAME CONNOVERRIDE CONNGATEWAYID CONNID LOGMSGDTLFLG ONSNDHDLRNAME ONRCVHDLRNAME GENERATED IB_LOCALIDFLG LASTUPDDTTM LASTUPDOPRID OBJECTOWNERID DESCR DESCRLONG ------------------------------ ----------------------- ----------- ---------- --------------------------------------------------------- ~GENERATED~17288 2005-10-21 00:00:00.000 1 A ~~ANY~~ PSFT_EP R N CREATE_WORKLIST_ITEM V1 N 2 ACK Y 2 2008-12-18 16:04:16.000 PPLSOFT PPT GENERATED NULL (1 row(s) affected) ROUTINGDEFNNAME EFFDT VERSION EFF_STATUS SENDERNODENAME RECEIVERNODENAME RTNGTYPE IB_SYNCHNONBLOCK IB_OPERATIONNAME VERSIONNAME CONNOVERRIDE CONNGATEWAYID CONNID LOGMSGDTLFLG ONSNDHDLRNAME ONRCVHDLRNAME GENERATED IB_LOCALIDFLG LASTUPDDTTM LASTUPDOPRID OBJECTOWNERID DESCR DESCRLONG ------------------------------ ----------------------- ----------- ---------- --------------------------------------------------------- CREATE_WORKLIST_ITEM 2005-10-21 00:00:00.000 1 I ~~ANY~~ PSFT_EP R N CREATE_WORKLIST_ITEM V1 N 2 ACK Y 2 2008-12-23 11:11:56.000 PPLSOFT Create worklist entry NULL ~GENERATED~17288 2005-10-21 00:00:00.000 1 A ~~ANY~~ PSFT_EP R N CREATE_WORKLIST_ITEM V1 N 2 ACK Y 2 2008-12-18 16:04:16.000 PPLSOFT PPT GENERATED NULL (2 row(s) affected) ONRCVHDLRNAME ------------------------------ ----------- 1513 ACK 2 (2 row(s) affected) IB_OPERATIONNAME ONRCVHDLRNAME DESCR ------------------------------ ------------------------------ --------------------------- CREATE_WORKLIST_ITEM ACK CREATE_WORKLIST_ITEM OnAckForMarkedWorkedResp Create worklist entry (2 row(s) affected)
Note that in PSSRVHDLRRCV_VW, there is a new row for ACK.
1. The simplest solution, however, is to delete the offending routing, ~GENERATED~17288.
2. In PIA, navigate to Integration Broker > Service Utilities > Service Administration. Select the Routings tab, and open the Delete section. Enter ~GENERATED~17288 into the Routing Name field and click Search. Check Select and then click Delete.
Under Results, the following message appears: Unable to delete. Routing belongs to a restricted service.
3. One way to resolve this is to change the restricted service to unrestricted. Navigate to Integration Broker > Configuration > Service Configuration. Click the Restricted Services tab, and search for PT_WORKLIST. Uncheck Restricted, and then Save.
4. Determine the field that is used as the lookup. Navigate to Integration Broker > Integration Setup > Routings. In the Find an Existing Value tab, in Routing Name, enter ~GENERATED~17288 and click Search.
5. Type Ctrl + J and note the Page name: IB_ROUTINGDEFN
6. On GL-WEB-APP, launch Application Designer and click Insert Definitions into Project. Choose Page and enter IB_ROUTINGDEFN. Choose IB_ROUTINGDEFN and click Close.
7. Double-click IB_ROUTINGDEFN. Right-click on the OnReceive Handler field and choose View Definition. On the ONRCVHDLRNAME field, right click and choose Record Field Properties. Click the Edits tab and note the Prompt Table: PSSRVHDLRRCV_VW.
8. In Management Studio, for the fsdev database, expand the Views navigator and locate PSSRVHDLRRCV_VW. Right click on PSSRVHDLRRCV_VW, choose Script View as, choose CREATE To, and click New Query. Note the command to create the view:
CREATE VIEW [dbo].[PSSRVHDLRRCV_VW] (IB_OPERATIONNAME, ONRCVHDLRNAME, DESCR) AS SELECT IB_OPERATIONNAME , HANDLERNAME , DESCR FROM PSOPRHDLR WHERE HANDLERID = 'RECV'
9. In PIA, navigate to Integration Broker > Integration Setup > Service Operations. In the Find Service Operation tab, in the Service Operation field, enter CREATE_WORKLIST_ITEM. Then click Search. Click CREATE_WORKLIST_ITEM to view it.
10. If the record is restricted, you will not be able to enter new Handlers. See step 3 above to resolve.
11. Click the Handler tab. Add a new Handler with the following information:
Name: ACK
Type: OnReceive
Implementation: Application Class
Status: Active
Click Details and add the following information:
Package Name: PT_WF_WORKLIST
Path: : [that is, only a colon must be entered]
Class ID: OnAckForMarkedWorkedResp
Method: OnAckReceive
12. Click Save.
Comments are closed.