2013-09-13 2 views
1

Работа приложения В настоящее время: Я написал триггер для таблицы на SQL-сервере для запуска внешнего приложения Java (которое находится на сервере tomcat) через HTTP-запрос всякий раз, когда есть вставка в эту таблицу. Я использовал xp_cmdshell внутри триггера, какБудет ли Apcahe верблюд использоваться между SQL-сервером и Activemq?

Exec xp_cmdshell 'sqlps -command "$http=New-Object system.Net.WebClient; 
$http.uploadString(\"http://127.0.0.1:8080/MessageProducer\",\"param1=somevalue ^& param2=thriu\")"' 

приложение Java написано взять queryString и производить сообщение в activemq. Наконец, я получаю сообщение в activemq всякий раз, когда есть вставка в SQL server.

Работа приложения Я хочу: SQL-сервер способен отправлять сообщения всякий раз, когда на сервере SQL есть обновление/вставка, поэтому почему я должен использовать java-приложение как промежуточное звено между SQL-сервером и activemq. Есть ли способ отправить сообщение с SQL-сервера в activemq. Пока я код для activemq, я наткнулся на Apache camel, это поможет мне ?.

ответ

1

Вам не нужно использовать какое-либо промежуточное программное обеспечение, такое как ваша вещь Tomcat или Apache Camel, если вы этого не хотите. ActiveMQ может получать сообщения right out of the box, как вы его отправляете сегодня.

Это будет что-то вроде этого (вы можете добавить проверку подлинности, если это необходимо):

Exec xp_cmdshell 'sqlps -command "$http=New-Object system.Net.WebClient; 
$http.uploadString(\"http://localhost:8161/api/message/TEST?type=queue\",\"param1=somevalue ^& param2=thriu\")"' 
+0

@peter. Я получаю потребитель, когда я запускаю этот кусок кода. Из вопроса подумайте, что OP хочет заполнить очередь activemq, когда что-то изменится в его sql db. мы можем это сделать? – shiva

+0

@peter Я хочу отправить сообщение с сервера sql во внешнее приложение. [проверьте мой предыдущий пост здесь] (http://stackoverflow.com/questions/18593248/message-from-sql-server-to-external-application-activemq). Я поставил этот вопрос, чтобы получить ответ, чтобы разместить верблюда Apache, чтобы получить сообщение с сервера sql и создать msg для activemq. – niren

+0

Что случилось? Этот URL-адрес http: // localhost: 8161/api/message/TEST? Type = queue с HTTP/POST помещает содержимое сообщения POST в очередь «TEST». Мне кажется самым простым способом. Другой альтернативой может быть запись небольшого производителя очереди в .NET с использованием ActiveMQ NMS и встраивание его в триггер. Http://technet.microsoft.com/en-us/library/ms179562.aspx –

Смежные вопросы