Consultor Eletrônico



Kbase P109498: Adapter for SonicMQ: User-defined function 'getid' invoked dynamically but could not be found. (5639
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   30/09/2005
Status: Unverified

FACT(s) (Environment):

Windows
UNIX
Progress 9.x
OpenEdge 10.x
SonicMQ

SYMPTOM(s):

4GL client errors when calling 4GL-JMS API deleteSession()

User-defined function '<function>' invoked dynamically but could not be found. (5639)

User-defined function 'getID' invoked dynamically but could not be found. (5639)

Stack trace from Prowin32.exe reads:
deleteSession jms/ptpsession.p (<DLC_10.0B>\jms\ptpsession.r) at line 16
deleteSession jms/impl/session.p (<DLC_10.0B>\jms\impl\session.r) at line 1314
disconnect jms/impl/msgreceiver.p (<DLC_10.0B>\jms\impl\msgreceiver.r) at line 657
--> deleteMsgConsumer jms/impl/msgreceiver.p (<DLC_10.0B>\jms\impl\msgreceiver.r) at line 722

Message consumer object is being delete with DELETE OBJECT before deleteSession() is called.

CAUSE:

DELETE OBJECT is removing the handle reference to the Message Consumer, which inturn causes the underlying adapter code to fail when it attempts to cleanup the 4GL-JMS objects.

FIX:

Use the 4GL-JMS API deleteConsumer() instead of DELETE OBJECT. For an example on how to duplicate and resolve the issue, see the note section below