Skip to main content
November 14, 2006
Question

cfmx7.0.2 installation nightmare

  • November 14, 2006
  • 5 replies
  • 1291 views
I've been trying to get ColdFusion MX 7.0.2 installed for a couple weeks now on an FC4 i386 box.

I've given up on my hope of being able to use the new JPA peristance architecture in EJB 3.0 since it depends upon the annotation capabilities of JDK 1.5 and that road was nothing but trouble with cfmx7. I also gave up on my hope of running it in Sun App Server 8.2.

Now I'm just trying to get the standard standalone deployment to work with an Apache connector. This too has been nothing but troublesome.

I'm at the point now where when I start the coldfusion process I get:

# ./coldfusion start
Starting ColdFusion MX 7...
The ColdFusion MX 7 server is starting up and will be available shortly.
======================================================================
Running the ColdFusion MX 7 connector wizard
======================================================================
Configuring the web server connector (Launched on the first run of the ColdFusion MX 7 start script)
Running apache connector wizard...
ColdFusion MX 7 not started, will retry connector 12 more time(s)
....
ColdFusion MX 7 not started, will retry connector 1 more time(s)
The connector wizard has not been able to contact the local ColdFusion MX 7, connector installation aborted.
======================================================================
ColdFusion MX 7 has been started.
ColdFusion MX 7 will write logs to /opt/coldfusionmx7/logs/cfserver.log
======================================================================

cfserver.log shows:

11/14 15:52:33 Error [main] - Unable to initialize FlexAssembler service: coldfusion.server.ServiceException: Unable to register Flex Assembler Service in RMI registry: java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is: java.net.SocketException: Invalid argument or cannot assign requested address.

but it also says:

JRun Naming Service listening on *:2920
RMI Registry started and listening on port 1099

and netstat -an says:

tcp 0 0 :::2920 :::* LISTEN
tcp 0 0 :::1099 :::* LISTEN

and I can telnet and connect to both those ports

the exception.log says:

java.net.SocketException: Invalid argument or cannot assign requested address."
coldfusion.server.ServiceException: Unable to register Flex Assembler Service in RMI registry: java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is:
java.net.SocketException: Invalid argument or cannot assign requested address.

I then try to create my connector with:

java -Dtrace.ci=1 -jar wsconfig.jar -server coldfusion -ws apache -dir /etc/httpd/conf -bin /usr/sbin/httpd -script /usr/sbin/apachectl -coldfusion -v -apxs

and I get:

Macromedia JRun 4.0 (Build 107948)
os.name: Linux
os.version: 2.6.11-1.1369_FC4
os.arch: i386
platform: intel-linux
Could not connect to any JRun/ColdFusion servers on host localhost.
Possible causes:
o Server not running
-Start Macromedia JRun4 or ColdFusion MX server
o Server running
-JNDI listen port in jndi.properties blocked by TCP/IP filtering or firewall
on server
-host restriction in security.properties blocking communication with server

wsconfig.log says:

jrunx.connectorinstaller.NoServerException
at jrunx.connectorinstaller.CIJndi.findServers(CIJndi.java:477)
at jrunx.connectorinstaller.CIJndi.<init>(CIJndi.java:141)
at jrunx.connectorinstaller.CIJndi.<init>(CIJndi.java:147)
at jrunx.connectorinstaller.ConnectorInstaller.parseArgs(ConnectorInstaller.java:228)
at jrunx.connectorinstaller.ConnectorInstaller.<init>(ConnectorInstaller.java:56)
at jrunx.connectorinstaller.ConnectorInstaller.main(ConnectorInstaller.java:750)

security.properties currently says:

jrun.subnet.restriction=*
jrun.trusted.hosts=127.0.0.1,192.168.1.12,192.168.1.112

I've tried numerous combinations there with no luck.

SELinux is currently disabled and there is nothing in iptables.

This is a level of aggrevation the sort of which you can only achieve by paying alot of money for something that doesn't seem to work. ANY suggestions would be well received!


    This topic has been closed for replies.

    5 replies

    November 16, 2006
    I unloaded the ipv6 module by adding "install ipv6 /bin/true" to /etc/modprobe.conf.local, doing a "depmod -a", and rebooting for good measure.

    wsconfig said ...

    findServers(): found server coldfusion at 127.0.0.1:2909
    Found JRun server coldfusion at 127.0.0.1:2909
    could not connect to port 2960 on host 127.0.0.1
    javax.naming.CommunicationException: Broken pipe. Root exception is java.net.SocketException: Broken pipe

    but still managed to create the mod_jrun22.so and modify my httpd.conf, so I guess it's "game on" at this point.
    Participant
    August 28, 2008
    (I realize that this is an old thread)
    I have been trying to get the cluster to be configured for a few hours now.
    What worked for me was:
    1) change the subnet mask to 255.255.0.0 on the clustered server: jrun_home/lib/security.properties (this is just temporary)
    2) use all 3 of these settings:
    1> -DWSConfig.PortScanStartPort=2900
    2> -DWSConfig.PortScanCount=20
    3> -DWSConfig.PortScanTimeout=1000
    November 16, 2006
    The REALLY interesting part is:

    Found port 2909 on host localhost
    could not connect to port 2909 on host 0:0:0:0:0:0:0:1
    java.net.UnknownHostException: 0: 0

    0:0:0:0:0:0:0:1 is the IPV6 loopback address
    November 16, 2006
    Thank you so much for the input.

    In a fit of desperation I wiped the whole box clean and installed Suse 9.0 in an effort to be 100% compliant with the requirements. Like I expected though, I got a similar problem. I tried the recommendations above but they didn't seem to affect anything.

    I also swapped out the wsconfig.jar with the "hotfix" one for Apache 2.2 compliance.

    I still get this:

    /opt/coldfusionmx7/runtime/lib # java -Dtrace.ci=1 -jar wsconfig.jar -server coldfusion -ws apache -dir /opt/httpd/conf -bin /opt/httpd/bin/httpd -script /opt/httpd/bin/apachectl -coldfusion -v -apxs
    Macromedia JRun 4.0 (Build 107948)
    os.name: Linux
    os.version: 2.6.5-7.97-default
    os.arch: x86
    platform: intel-linux
    Found port 2909 on host localhost
    could not connect to port 2909 on host 0:0:0:0:0:0:0:1
    javax.naming.ServiceUnavailableException: The connection to the remote JNDI server on host 0 at port 0 has failed (as have all backup hosts listed, if any) - please verify that the server is running and the NamingService is available. Root exception is java.net.UnknownHostException: 0: 0
    at java.net.InetAddress.getAllByName0(InetAddress.java:1034)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1004)
    at java.net.InetAddress.getAllByName(InetAddress.java:998)
    at java.net.InetAddress.getByName(InetAddress.java:912)
    at jrunx.util.NetUtil.resolveIP(NetUtil.java:30)
    at jrun.naming.JRunNamingContext.connectToNameServer(JRunNamingContext.java:1345)
    at jrun.naming.JRunNamingContext.getRemoteContextProxy(JRunNamingContext.java:1319)
    at jrun.naming.JRunNamingContext.getContextProxy(JRunNamingContext.java:1135)
    at jrun.naming.JRunNamingContext.lookup(JRunNamingContext.java:517)
    at jrun.naming.JRunNamingContext.lookup(JRunNamingContext.java:495)
    at javax.naming.InitialContext.lookup(InitialContext.java:361)
    at jrunx.connectorinstaller.CIJndi.findServers(CIJndi.java:362)
    at jrunx.connectorinstaller.CIJndi.<init>(CIJndi.java:141)
    at jrunx.connectorinstaller.CIJndi.<init>(CIJndi.java:147)
    at jrunx.connectorinstaller.ConnectorInstaller.parseArgs(ConnectorInstaller.java:228)
    at jrunx.connectorinstaller.ConnectorInstaller.<init>(ConnectorInstaller.java:56)
    at jrunx.connectorinstaller.ConnectorInstaller.main(ConnectorInstaller.java:750)
    Could not connect to any JRun/ColdFusion servers on host localhost.
    Possible causes:
    o Server not running
    -Start Macromedia JRun4 or ColdFusion MX server
    o Server running
    -JNDI listen port in jndi.properties blocked by TCP/IP filtering or firewall
    on server
    -host restriction in security.properties blocking communication with server
    Participating Frequently
    November 15, 2006
    I've had quite a bit of experience setting up CFMX 6.*,7.* instances, and configuring web connectors for both IIS and Apache in firewalled environments. So...I'm hoping I can be of some help here. I'm a little unclear on your precise setup though, so my ability to assist may be limited.

    To get started, could you first clarify the network topography involved here? Do you have a single web server, running Apache - that's completely seperate from the application server with CFMX instaled? Are these machines on the same subnet? What are their IP addresses respectively?

    Based on the details you've provided thus far, it sounds like you're trying to lock down this environment pretty tight, so I'm assuming there is some sort of firewalling going on (be it hardware, or software....).

    Just simply try and see if you can get something working, I would first roll-back your changes to the security.properties file so it's back to it's default:
    jrun.subnet.restriction=255.255.255.0
    jrun.trusted.hosts=

    Secondly, there's something you should know about the ports being used to configure the wsconfig connector. I believe 51011 is indeed used, so the web server(s) must be able to connect to the app server(s) on that port. Additionally, the "RMI Port" and the "RMI-Broker" are both used RANDOM ports by default. I typically like to lock these down to a port, so I can at least firewall those ports and know what's going on.

    I typed up some notes for myself last year while doing this for one of our new production environments - here is a snippet that details the procedures for locking down these ports:

    >> In the file: C:\JRun4\servers\<servername>\SERVER-INF\jndi.properties
    Set “jrun.naming.rmi.port” to a value of 2960

    *Note: this sets the “RMI Port” to an assigned port, to aid in firewall lockdown.
    Otherwise, RMI will choose a random port, which makes firewalling more difficult between
    the web server(s) and application server(s).


    >> In the file: C:\JRun4\servers\<servername>\SERVER-INF\jrun.xml:
    ...find the xml block which starts with:
    <service class="jrunx.rmi.RMIBroker" name="JRunRMIBroker">

    …underneath the “clusterAlgorithm” attribute, add the following attribute:

    <attribute name="port">2961</attribute>

    *Note: this sets the “RMI-Broker Port” to an assigned port, to aid in firewall lockdown.
    Otherwise, the RMI-Broker will choose a random port, which makes firewalling more difficult between
    the web server(s) and application server(s).

    Anyways, this might at least help get you started in the right direction. I'd be interested in hearing how it goes - I'll check back periodically.
    November 15, 2006
    As I now understand it, wsconfig should be attempting to connect to port 51011. I've established that port 51011 is listening and that I can get a connection to it via telnet. Is their a way to control what wsconfig is trying to connect to?