如果将Websphere MQ用作使用Java MQ类的XA(分布式事务)事务管理器,而不是JTA,Java应用程序和WMQ,则两者都需要驻留在同一主机上。我被告知这是因为共享内存被用作进程间通信机制。 Java应用程序和Websphere MQ都需要访问共享内存才能使XA工作。
如果我们在docker容器中部署WMQ并将我们的Java应用程序保存在同一主机上的另一个docker容器中,我们是否可以将WMQ用作XA协调器?
我们是否必须使用容器的某些特殊配置才能使其正常工作?我们可以允许两个容器使用公共共享内存吗?
的问候,
佳日
答案 0 :(得分:0)
您可以通过--ipc
和run
create
选项使用常用的IPC名称空间
docker run -d --name=wmq wmq
docker run -d --ipc=container:wmq app
不太安全的主机ipc
docker run -d --ipc=host wmq
docker run -d --ipc=host app
我不确定MQ是否支持XA的任何设置,但IBM确实支持Docker中的MQ。