队列由一个模式(比如OWNER)拥有;他正试图以另一个用户(比如SUBSCRIBER)的身份进行连接。订阅者已被所有者授予取消订阅特权(以及按其价值取消订阅)。
当他创建队列并将“multiple_consumers”选项设置为FALSE时,一切正常。当“multiple_consumers”设置为TRUE(我们需要的设置)时,它会失败,并出现以下情况:
oracle.jms.AQjmsException: ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 5757
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_AQJMS", line 129
ORA-06512: at line 1
at oracle.jms.AQjmsSession.addDurableSubscriber(AQjmsSession.java:3708)
at oracle.jms.AQjmsSession.createSubInOldMode(AQjmsSession.java:2742)
at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:2400)
at oracle.jms.AQjmsSession.forceCreateOldSubscriber(AQjmsSession.java:2884)
at oracle.jms.AQjmsSession.createConsumer(AQjmsSession.java:6820)
如果他以所有者的身份连接,它就会成功。
我如何计算出我需要授予订阅者哪些特权?