ORA-09759: osnsbt: bad message received.
Cause: The msg_receive system call failed, or received a bad message.
Action: Internal error. Report the error code returned in sercerrno.
ORA-09759:osnsbt:接收到错误的消息。
ORA-09759表示接收到错误的消息,主要发生在使用Oracle Streams API时。它通常是由于接收方指定的消息与实际接收到的消息不匹配导致的,比如长度不一致或者类型错误等等。
例如,在Oracle Streams API调用osnfsmt后,期望接收2字节的消息,但是实际接收到的消息可能是3字节。另外,Oracle Streams API调用ossfndtm时,期望接收一个时间戳,但是实际接收到的消息是其他类型,也会引发ORA-09759。
1.查看是否向Oracle Streams API传递了不正确的参数。
2.检查是否正确向osnfsmt/ossfndtm函数传递了指定的消息长度和消息类型。
3.如果一切正确,请确认Oracle Streams的应用程序是否在正确的版本上安装,
4.并检查错误日志,以便找出正确的消息发送/接收。
5.使用GRANT SELECT 权限,分配对Streams表(本地或者远程)的访问权限。