ORA-25247: string is not a recipient of specified message
Cause: The consumer name specified in the dequeue options is not a recipient of the message specified by the message id.
Action: Ensure that the agent specified by the consumer name is a recipient of the message specified by the message id.
ORA-25247是逻辑消息异常,会在程序调用DBMS_PIPE.RECEIVE_MESSAGE( ) 过程时发生。当调用此过程时,指定的消息并不存在,就会抛出ORA-25247。
ORA-25247: string is not a recipient of specified message
Cause: User attempted to receive a message specific to a given recipient through DBMS_PIPE.RECEIVE_MESSAGE, but specified recipient was not the recipient of the specified message.
Action: Verify that recipient is the one intended to receive the message and then retry.
当应用程序通过DBMS_PIPE.RECEIVE_MESSAGE( ) 过程获取消息时,如果指定的消息不存在的话,ORA-25247就会被抛出。
1.检查指定的消息是否存在,通过DBMS_PIPE.PIPE_STATUS( ) 过程来查看。
2.如果消息存在,检查接收者与定义时接收者是否一致,如果一致,再次尝试利用DBMS_PIPE.RECEIVE_MESSAGE( ) 过程获取消息。
3.如果消息不存在,则不能重复使用DBMS_PIPE.RECEIVE_MESSAGE( ) 过程,需要先使用DBMS_PIPE.SEND_MESSAGE( ) 过程向队列(与调用DBMS_PIPE.RECEIVE_MESSAGE( ) 过程相关联)发送消息,再重新使用DBMS_PIPE.RECEIVE_MESSAGE( ) 过程获取消息,必要时可以添加一些等待操作。