I use Linux for my archive but here's what i did to get multiple dcm4chee instances running on one server:
1. Add a virtual IP address for each dcm4chee instance:
a. cd /etc/sysconfig/network-scripts
b. copy the ifcfg-eth0 to ifcfg-eth0:0 ( for each virtual ip increment the :0 by 1 )
c. edit ifcfg-eth0:0 and change:
Change DEVICE=eth0 to
DEVICE=eth0:0
remove the HWADDR line
Set the correct IP address for IPADDR
Change ONBOOT=yes to ONBOOT=parent
d. issue a service network restart
2. Deploy the dcm4chee instances ( I use /usr/local )
a. I rename the dcm4chee folder to something other then the default (example dcm4chee-2.17.1-psql-01 )
3. Create a DB for each dcm4chee instance
4. edit
pacs-WHATEVER-ds.xml and change:
a. change local host to the virtual IP address
4. edit the jboss-web.deployer/server.xml and change:
a. change line <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" TO <Connector port="8443" address="${jboss.bind.address}" protocol="HTTP/1.1" SSLEnabled="true"
5. If you are starting dcm4chee as a service
a. create a service script in /etc/init.d for each instance of dcm4chee you deploy
b. edit the service script and change:
JBOSS_HOME=${JBOSS_HOME:-"/usr/local/dcm4chee-WHAT_EVER_YOU_NAMED_IT"}
$SUBIT "$JBOSS_CMD_STOP" TO $SUBIT "$JBOSS_HOME/bin/shutdown.sh -S -s THE_VIRTUAL_IP -u $JBOSS_ADMIN_USER -p $JBOSS_ADMIN_PASS"
I change the SUBIT because dcm4chee would not stop
c. edit bin/run.sh and change:
JBOSS_BIND_ADDR=${JBOSS_BIND_ADDR:-"0.0.0.0"} TO JBOSS_BIND_ADDR=${JBOSS_BIND_ADDR:-"VIRT_IP_ADDRESS"}
6. Restart dcm4chee and go to the jmx-console and add the virtual IP addresses for:
service=DcmServer
service=HL7Server
7. Restart dcm4chee and make sure there are no errors
I think that is everything I did. The reason I did it this way is so I could use all the same ports and not have to mess with any other config files of dcm4chee.