Я тестирую настройку сервера веб-логики, который может использовать реализацию Oracle AQ JMS, но по какой-то причине мой пул соединений WLS не может видеть созданную мною очередь, единственный способ увидеть, как найти очередь в веб-логике, - это для создания пула соединений с источником данных веб-логики используйте учетные данные пользователя БД, создавшего очередь.
В качестве admin_user я сделал следующее:
Создана таблица очередей
EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE(queue_table=>'testqueue_table',queue_payload_type=>'sys.aq$_jms_text_message');
Создана очередь
EXECUTE dbms_aqadm.create_queue(queue_name=>'testqueue', queue_table=>'testqueue_table');
Запущена очередь
EXECUTE dbms_aqadm.start_queue(queue_name=>'testqueue');
Предоставлены разрешения пользователя CPOOL
GRANT aq_user_role TO cpool;
EXECUTE DBMS_AQADM.grant_queue_privilege(privilege=>'ALL', queue_name=>'adming_user.testqueue', grantee=>'cpool',grant_option=>FALSE);
Настройка 2 источников данных JDBC в веб-логике
Я настроил 2 источника данных в веб-логике, которые подключаются к моей базе данных, оба идентичны, за исключением того, что один использует пользователя cpool , а другой использует admin_user
Создание модулей JMS
Теперь я регистрирую модуль jms в источниках данных JDBC и подключаю локальные и внешние имена JDNI.
Если я использую источник данных, который использует admin_user , все работает нормально, и мое развернутое приложение может найти очередь в JNDI.
Задача
Если я использую источник данных, который использует cpool , он не сможет найти пул соединений в JNDI, но никогда не будет Очередь (несмотря на то, что он работал для admin_user). Я получаю следующую ошибку от WL:
Related cause:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testqueue': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Cannot resolve name:Queues/TESTQUEUE
Кто-нибудь знает, почему WL не может разрешить имя JNDI для очереди, если я не использую учетную запись admin_user для своего источника данных.