Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

CF8 Install Hangs on Web Server Connectors

Contributor ,
Aug 24, 2007 Aug 24, 2007
I am trying to upgrade from CF7 to CF8 standard. I get all the way through the install process and it stays on Installing Web Server Connectors forever. I let it run for a few hours even to try it. So I have to kill the process. I then try it again and it will go all the way through but I get a message on the last page that says it was unable to configure my web server connectors and that I will need to do it manually. It says to check and make sure port 51380 or something (can't recall exact port number) is not blocked by a firewall (which it is not).When I try the Web Server Configuration tool it gives me an error about the dll is already being used by another process. So it seems no matter what I do it will not install.

anybody run into this problem and found a way to get around it?
4.7K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 27, 2007 Aug 27, 2007
I haven't experienced this issue, but I suggest stopping your web server during the installation process. It sounds like both setup and wsconfig are trying to replace the existing connector files and can't because they're currently held open by a running process.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Aug 28, 2007 Aug 28, 2007
Good suggestion. I tried this but it did not work. It says in the install docs to make sure your web server is running also.

I find it sad that Adobe will not let you talk to a live person for support on a product you just purchased and will not install. You pay $700ish for the upgrade and then they want an additional $500 to actually speak with somebody on the phone. I think that is just sad. The web server configuration tool does not work via the gui or the command line. It just hangs.

I followed the manual configure options provided via email by the tech (which is for MX7 not CF8 by the way) several times last night. I never got it to work. I spent 4 hours late last night trying to get this to work with no luck. Ultimately I went back to my CF7 install which works. Whenever I tried to get to a cfm page the browser would just spin and never pull up the page. I am really frustrated with the support level of Adobe products.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 28, 2007 Aug 28, 2007
In my own environment, I use the internal web server during setup. After ColdFusion/JRun is installed, I manually extract and configure the connector. wsconfig is a nice convenience, but it's not written to configure anything but the most basic web server configuration.

The steps for manually configuring the JRun connector are well-documented, but you should have a good understanding of how your web server uses filters, modules, add-ins, etc. if you intend to to anything complex.

http://www.adobe.com/go/121a0b29
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Aug 28, 2007 Aug 28, 2007
Yeah this is the same article the tech person sent me to. I followed it to the T about 6 different times and it still did not work. then today they asked me for some of the files from the server etc. Like ini and log files. Some of the files they asked for those instructions never tell you to setup so they were not there. I am wondering if there have been some changes maybe to how this works between CF7 and CF8? I also wonder if it is possible to run just a test website with CF8 and run all the rest of the sites under CF7 at the same time using IIS. Theoretically you should be able to. Not sure though.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 29, 2007 Aug 29, 2007
IIS communicates with JRun and not ColdFusion specifically, so it's possible to connect to as many different JRun instances as you want, regardless of the version of ColdFusion being hosted by JRun.

First, let's have a quick overview of the IIS-related files in wsconfig.jar. The directory structure of the wsconfig.jar archive did not change between ColdFusion MX 7.0.2 and ColdFusion 8. I recommend using the files from the archive shipped with ColdFusion 8.

connectors\installers\intel-win\prebuilt\jrunwin32.dll

jrunwin32.dll exports functions used by wsconfig to configure and manage IIS. If you're not going to use wsconfig to manage your IIS configuration, you don't need this file.

connectors\isapi\intel-win\prebuilt\jrun.dll

jrun.dll is the ISAPI filter and extension library used by IIS 5.1 and earlier. It provides both global filtering, configured at the server level, and application mappings, configured at either the site or application (directory or virtual directory) level. Defaut application mappings can also be configured at the server level.

connectors\isapi\intel-win\prebuilt\jrun_iis6.dll

jrun_iis6.dll is the ISAPI extension library used by IIS 6.0 and later. It provides application mappings configured at either the site or application (directory or virtual directory) level. Default application mappings can also be configured at the server level.

connectors\isapi\intel-win\prebuilt\jrun_iis6_wildcard.dll

jrun_iis6_wildcard.dll is the ISAPI extension library for wildcard application mappings used by IIS 6.0 and later. It provides wilcard application mappings configured at either the site or application (directory or virtual directory) level. Default wilcard application mappings can also be configured at the server level. Wildcard application mappings in IIS 6.0 are similar to filters in IIS 5.x; however, wildcard application mappings can be more granular in scope and do not hinder IIS performance as filters did in the past.

Wsconfig performs the following steps when configuring an IIS web site:

1. Creates the lib\wsconfig directory.
2. Creates the wsconfig.properties file.
3. Extracts jrunwin32.dll to lib\wsconfig.
4. Creates the lib\wsconfig\1 directory. (The significance of the numbered directory will be explained later.)
5. IIS 5.x: Extracts jrun.dll to lib\wsconfig\1.
6. IIS 6.0: Extracts jrun_iis6.dll to lib\wsconfig and jrus_iis6_wildcard.dll to lib\wsconfig\1.
7. IIS 5.x: Creates the lib\wsconfig\1\jrun.ini file.
8. IIS 6.0: Creates the lib\wsconfig\jrun_iis6.ini file.
9. IIS 6.0: Creates the lib\wsconfig\1\jrun_iis6_wildcard.ini file.
10. Configures IIS.

From this point forward, we'll focus on IIS 6.0.

The wsconfig.properties file is used by wsconfig to keep track of configured web sites. The numbers in the first column of this file correpsond to the numbered directories in lib\wsconfig. A sample IIS configuration looks like this:

1=IIS,1,false,""
1.srv=localhost,"cfusion"
1.cfmx=true,<null>

The first key/value pair contains information about the web server you opted to configured. The first field in the value is the web server, IIS in this case. The second field in the value refers to IIS instance 1 and corresponds to the web site you selected from the IIS Web Site drop-down list. The instance number is listed in Indentifier column in Internet Information Services (IIS) Manager when the Web Sites node is selected in the tree view. An instance number of 0 corresponds to the All option in the IIS Web Site drop-down list and all changes will be made at the server level. The third field in the value notes whether or not you opted to use the ISAPI filter under Advanced Settings. This field is always false in IIS 6.0. The last field in the view is a comma-delimited list of file extensions to use in application mappings. An empty value notes that the default file extensions should be used.

The next key/value pair, X.srv, contains information about the JRun instance. The fields correspond to the JRun Host and JRun Servers options you selected.

The last key/value pair, X.cfmx, corresponds to the "Configure web server for ColdFusion MX/8 applications" option. (There is a gap of my knowledge of wsconfig at this point. I don't know what the <null> in the second field represents. When the first field is false, the second field is not populated.)

As you configure additional web servers, new directories are created under lib\wsconfig with corresponding sections in wsconfig.properties. Adobe's manual configuration instructions typically include creating the wsconfig.properties file; however, I don't believe the file is necessary for the connector to function. See the bootstrap value discussed further down.

The jrun_iis6.ini file contains two keys, verbose and errorurl. Setting the verbose key equal to true enable verbose logging in jrun_iis6.dll. Setting the errorurl key to an appropriate URL causes the connector to redirect to a specific page on errors, which is useful if you want to present your users with a warm and friendly failure notification rather than an internal server error.

The jrun_iis6_Wildcard.ini file contains most of the settings we'll need to modify to support multiple instances of ColdFusion. A default jrun_iis_wildcard.ini file looks like this:

verbose=false
serverstore=D:/JRun4/lib/wsconfig/1/jrunserver.store
bootstrap=127.0.0.1:51000
apialloc=false
ssl=false
#errorurl=<optionally redirect to this URL on errors>
#proxyretryinterval=<number of seconds to wait before trying to reconnect to unreachable clustered server>
#connecttimeout=<number of seconds to wait on a socket connect to a jrun server>
#recvtimeout=<number of seconds to wait on a socket receive to a jrun server>
#sendtimeout=<number of seconds to wait on a socket send to a jrun server>

Setting the verbose key to true enables verbose logging in jrun_iis6_wildcard.dll.

The serverstore key contains the path to the cached JRun proxy service hosts and ports. More on this later.

The bootstrap key contains the JRun proxy service host and port used to initialize the connector. This is the magic key that determines which instance of ColdFusion will be used by the connector. Once retrieved during the bootstrap process, the list of JRun proxy service hosts and ports are written to the file specified by the serverstore key.

The apialloc key corresponds to the "Enable native OS memory allocator" option in Advanced Settings.

The ssl key determines whether or not communication between JRun and the connector is encrtyped using SSL. This is outside the scope of this post.

The errorurl key has the same meaning as the errorurl key in the jrun_iis6.ini file.

The proxyretryinternal, connecttimeout, recvtimeout, and sendtimeout keys do exactly what the comment say they do. The values of these keys should be optimized for your environment.

The main values of interest are serverstore and bootstrap. The connector refers to these values to connect to a JRun server. Upon the first connection attempt, the connector reads the value of the bootstrap key. It then attempts to connect to the host and port specified. If the connection is successful, the connector will query the JRun server for a list of valid peers. If you've configured a cluster, the JRun server will return an array cluster peers in ip:host format, where ip is the primary IP address of the JRun server. For single instances, a single ip:host value is returned. The list of peers is then cached in the file specified by the serverstore key, typically jrunserver.store.

The jrunserver.store file contains a single key, proxyservers. A sample proxyservers key looks like this for a single-instance environment:

proxyservers=10.0.0.1:51000;

For clustered instances of JRun on the same host, the proxyservers key may look like this:

proxyservers=10.0.0.1:51000;10.0.0.1:51001;

For clustered instances of JRun on different hosts, the proxyservers key may look like this:

proxyservers=10.0.0.1:51000;10.0.0.2:51000;

Any combination of instances is possible, assuming all instances are part of the same cluster. It's possible to have the connector use multiple non-clustered instances of JRun, and if your application is entirely stateless, this may be a valid option for you. In fact, you configure a cluster using unicast peers, all instances of JRun on the unicast peer will be added to the proxyservers key. This is contrary to the way session replication operates in JRun and is most likely a bug in JRun's Jini implementation. (I've posted about this previously, but I haven't received a reply from Adobe.)

(cont)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 29, 2007 Aug 29, 2007
Let's assume a scenario involving one ColdFusion MX 7 instance installed on host 192.168.0.1, listening on port 51000, one ColdFusion 8 instance installed on host 192.168.0.2, also listening on port 51000, and one IIS instance install on host 192.168.0.3. It's possible to have both versions of ColdFusion running on the same host, but you would most likely need to deploy one or the other using the J2EE deployment method, and that's outside the scope of this post.

By default, JRun allows access from hosts matching the mask 255.255.255.0, so security shouldn't be an issue. Connection security is configurable in lib\security.properties. A more secure installation might look like this:

jrun.trusted.hosts=192.168.0.3

You can use hostnames in place of IP addreses. In a clustered configuration, we would include the addresses of the cluster peers as well.

The JRun proxy service is disabled by default. This is the service the connector uses to send requests to JRun. The enable the service, set the deactivated attribute for the jrun.servlet.jrpp.JRunProxyService service to false in servers\<instance>\SERVER-INF\jrun.xml, e.g. <attribute name="deactivated">false</attribute>, and restart the JRun instance.

We'll now create the necessary connector configuration. Create the following directory structure on your IIS 6.0 server (these are just samples--if you plan to leave logging enabled, you'll want the directories on a volume with sufficient available disk space):

C:\JRun4\lib\wsconfig\1
C:\JRun4\lib\wsconfig\2

Using WinZip or another PKZip archiving tool, extract the jrun_iis6.dll and jrun_iis6_wildcard.dll files from wsconfig.jar to the following locations:

C:\JRun4\lib\wsconfig\jrun_iis6.dll
C:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll
C:\JRun4\lib\wsconfig\2\jrun_iis6_wildcard.dll

Create the C:\JRun4\lib\wsconfig\jrun_iis6.ini file with the following values:

verbose=true
#errorurl=

This will enable verbose logging for debugging purposes. If you want to specify an error page, uncomment errorurl (remove the hash) and enter an appropriate URL, presumably one that doesn't require JRun or ColdFusion for rendering.

Create the C:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.ini file with the following values:

verbose=false
serverstore=C:/JRun4/lib/wsconfig/1/jrunserver.store
bootstrap=192.168.0.1:51000
apialloc=false
ssl=false
#errorurl=
proxyretryinterval=600
connecttimeout=30
recvtimeout=30
sendtimeout=30

Create the C:\JRun4\lib\wsconfig\2\jrun_iis6_wildcard.ini file with the following values:

verbose=false
serverstore=C:/JRun4/lib/wsconfig/2/jrunserver.store
bootstrap=192.168.0.2:51000
apialloc=false
ssl=false
#errorurl=
proxyretryinterval=600
connecttimeout=30
recvtimeout=30
sendtimeout=30

The interval and timeout keys have been populated with their default values. You can delete them or leave them commented out if you wish. I prefer to keep the values documented in the INI file itself.

In Internet Information Services (IIS) Manager, perform the following steps:

1. Right-click the Web Service Extensions node in the tree view and select "Add a new Web service extension..." from the context menu. Name the extension "Macromedia Server Extensions" (or "Adobe Server Extensions" or "JRun Server Extensions" or whatever) and add the following files to the list of allowed files:

C:\JRun4\lib\wsconfig\jrun_iis6.dll
C:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll
C:\JRun4\lib\wsconfig\2\jrun_iis6_wildcard.dll

2. Right-click the site or application (directory or virtual directory) you want to connect to the first instance of JRun and select Properties from the context menu.

3. Select the Documents tab. Add index.cfm to the list of default content pages if you want that functionality.

4. Select the Home Directory tab. Set Execute permissions to at least "Scripts only." Click the Configuration button. Click the Add button to add ColdFusion and JRun file extensions to the list of application extensions. For all extensions, the executable path is C:\JRun4\lib\wsconfig\jrun_iis6.dll, "All verbs" is selected, "Script engine" is checked, and "Verify that file exists" is unchecked. The default list of ColdFusion and JRun extensions is .cfc, .cfm, .cfml, .cfr, .cfswf, .jsp, and .jws.

5. This is where the magic happens. While on the Home Directory tab, click the Insert button to insert a new wildcard application mapping. The executabe path is C:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll, and "Verify that file exists" is unchecked.

Repeat steps 2 through 5 for the second site or application; however, in step use
C:\JRun4\lib\wsconfig\2\jrun_iis6_wildcard.dll for the executable path.

At this point, your sites and/or applications should be configured to connect to either 192.168.0.1 (C:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll) or 192.168.0.2 (C:\JRun4\lib\wsconfig\2\jrun_iis6_wildcard.dll). It's important that the wildcard application mapping be configured correctly; otherwise, JRun requests will not be routed to the correct JRun instance.

I'm getting a bit winded at this point, so give this a try. I've used the terms ColdFusion and JRun to mean almost the same thing throughout the document. The key points to note are the values in the various jrun_iis6_wildcard.ini files, the configuration of the JRun proxy service, and the wildcard application mappings for the site or application.

Let me know if you need me to expand on any particular topic.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 03, 2007 Sep 03, 2007
Wow. That may quite possibly be the most helpful, detailed post(s) I've ever seen on this forum. Not to pry, but TRS-80 what is your background if you don't mind sharing?

Mike
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 05, 2007 Sep 05, 2007
I'm primarily a Windows system administrator, with a focus on system and software integration. ColdFusion and JRun are just two of the applications I'm responsible for grokking. I didn't go to college, and most of what I know is self-taught. My first "real" job was designing and implementing a Windows NT 4.0 migration plan for a large company. I've spent most of my professional career as a desktop engineer and systems administrator. In my spare time I tinker with system-level programming in MS-DOS and occassionally Amiga OS. I only delve into Unixes when necessary or interesting, the Unix community being notoriously difficult to tolerate. ;-)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 06, 2007 Sep 06, 2007
Thanks for the response. Personally, although I'm better with Windows, I actually prefer Linux. Unfortunately, there is a varying degree of better-than-thou source snobbery within the open source community. I personally don't have time or patience for any of that no matter what side of the fence it's coming from, and I do see it come from Microsoft enthusiasts as well although to a lesser degree. I work for a hosting company in a support position and I don't have much of choice in what I work on. If a Windows box breaks I fix it. If a Unix box breaks I fix it.

As an aside though, something I highly enjoy when somebody's been getting all elite on me about how Windows is for idiots, is watching them on a Windows box trying to add permissions for a user to a folder through the GUI. After they hit the "Add" button on the "Security" tab, they're done. They have no idea where to go from there. It's not intuitive, so they're stuck, and it's great watching the eliteness drain away temporarily.

Mike
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 06, 2007 Sep 06, 2007
LATEST
I often have to cross over, but usually in odd ways. At the moment, I'm putting together a multi-protocol file services solution (CIFS/SMB, FTP, NFS, and possibly HTTP) on a Windows cluster--but not because Windows is the best choice. Our NetApp Filer folks don't want to support a CIFS/FTP/NFS hybrid environment, our Linux folks turn up their noses at CIFS, and our Solaris folks just shrug (Solaris needs to act as a client in this case, and there doesn't appear to be a stable CIFS client or file system available). Fortunately for me, Microsoft has turned Service for UNIX (and the products now integrated into Windows Server 2003 R2) into a robust and capable solution.

More often than not, the cross-over comes in ways that perhaps only someone with a hardware-based background, the PC market necessarily being what it is, can appreciate. Solaris Guy: "One of my processors is spiked at 100%, but I can't find the cause." Me: "Interrupts typically have processor affinity. Have you checked for faulty hardware?" Solaris Guy: "Looks like we have a bad serial port. Wow, it never would have occured to me to check the hardware."

I do agree with you regarding the even distribution of smugness among geeks. I tend to learn platforms--x86, Alpha, and whatever may be in between: EFI, SRM, etc. After that, software is software, whether it's an operating system, a Perl script, or a video game. Even so, the longer you support a particular operating system, the more accustomed you become to idiosyncrasies in that operating system's development community, including their programming and design habits. That level of intuition, learned or otherwise acquired, is typically what separates the good system administrator from the bad (or inexperienced).

I do like and use Linux as a tool for experimenting with other platforms. It certainly made my Dreamcast more interesting. And GCC is, of course, a fantastic tool for cross-platform development. Case in point: I write Amiga software under Windows using a Cygwin-based GCC cross-compiler. As much as I love my Amigas, those old MC68000 series processors aren't exactly screamers when it comes to crunching source code.

EDITED (Gotta watch that grammar.)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources