2016-11-07 3 views
0

Ich muss eine Warteschlange in OpenEJB in einem "paused" Zustand starten, so dass keine Nachrichten vom Verbraucher verarbeitet werden, bis einige verwandte Daten verfügbar sind. Ich kann die Warteschlange programmatisch pausieren, wie gezeigt here, also wenn es einige Initialisiererfunktion gab, die wenn eine Warteschlange angerufen wird, könnte ich diese Methode benutzen. Die Warteschlangenkonfiguration documentation scheint die Einstellung des angehaltenen Status nicht zu unterstützen. Irgendwelche Ideen, wie man die Queue bei der Erstellung konfiguriert?ActiveMQ-Initialisierer in OpenEJB/TomEE

Antwort

0

Wenn Sie den Thread lesen, den Sie verknüpfen, sehen Sie, dass eine Warteschlange nicht pausiert ist, aber ein Broker sein kann.

In TomEE Broker wird von einer Fabrik mit einem Spi (in Tomee Classloader so tomee/lib standardmäßig) erstellt, so dass Sie Ihre eigenen schreiben können, wenn das eine programmatische Programmstart ist, wenn Sie bereit sind.

Jetzt vermute ich, dass Sie keine Connectors mit dem Container starten möchten, aber es ist kein Problem, den Broker zu starten. Anders gesagt, Sie möchten nicht mit einer anderen Maschine über JMS verbunden sein, um nichts zu empfangen, aber wenn JMS gestartet und bereitgestellt wird, ist es in Ordnung.

In solch einem Fall können Sie einfach keinen Connector auf dem Broker konfigurieren und hinzufügen, wenn Sie bereit sind. Sie können finden, Makler tun:

new org.apache.openejb.resource.activemq.ActiveMQ5Factory().getBrokers()