ColdFusion 8: Page 4

[frs-54] Running FusionReactor on a server that runs under a non administrative user account


When FusionReactor is used on a server that does not run under the system account but runs under a dedicated user the following actions have to be done to make FusionReactor work correctly:

Adjust the permissions of the directory FusionReactor has been installed in (e.g. C:FusionReactor or /opt/fusionreactor) so that the server runtime user can recursively write to and read from it.

On Windows adjust the permissions of the following registry key so that the server runtime user can recursively write to and read from it:

[HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefs]

When FusionReactor is executed for the first time and every time a FusionReactor license is uploaded the server writes the following keys and value:

[HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefscomintergralfusionreactorlicenseenterprise]
"license"="/Gonrm/M/Xv..."

On Linux or Solaris find the location of the Java System Preferences Backing Store. This is typically /etc/.java/.systemPrefs or <java_home>/jre/.systemPrefs.
If no such directory exists create the /etc/.java/.systemPrefs directory. Make sure that the server runtime user can recursively write to and read from this directory.

Issue Details

Type: Technote
Issue Number: FRS-54
Components:
Environment:
Resolution: Fixed
Last Updated: 14/Jan/08 3:52 PM
Affects Version: 2.0, 2.0.3
Fixed Version: 1.0, 2.0, 2.0.3
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, Solaris
Related Issues:

FRS-103: need to run CFMX7 under a different domain account allowing CFMX to have network access rights. However, as soon as I give CFMX this user account to run under, everything breaks with Fusion Reactor?

FRS-105: I manually installed FusionReactor using the built in web server on Port 8088 & everything seemed to work. I updated some settings in the interface, followed by a CF restart. All I see now is the License Expired screen. Is my license file old?

FRS-44: Why has my FusionReactor (trial) license expired unexpectedly?

[frs-105] I manually installed FusionReactor using the built in web server on Port 8088 & everything seemed to work. I updated some settings in the interface, followed by a CF restart. All I see now is the License Expired screen. Is my license file old?


If you have done a manual installation of FusionReactor check the following details;

(1) FusionReactor resp. the CF server can write to the Windows Registry. To install the license information it needs access to

[HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefs]

(2) you also try a different web browser to upload the license file. We have seen Firefox occasionally not sending the binary data of the license file properly – this never happened with IE.

(3) the directory FusionReactor is installed to has read/write access for the server it has been deployed to.

Note: It could be necessary to delete the license value from the registry if the error does not go away. For this stop the CF server and then delete

[HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefscomintergralfusionreactor]

from the registry. Restart the server and upload the license file again. The license information in the registry will then be recreated.

Instead of uploading the license file, try putting it directly in the license directory:

C:FusionReactorlicenselicense.lic

Once you restart the server FusionReactor will detect the license file and install it to the registry as noted above.

Issue Details

Type: Technote
Issue Number: FRS-105
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 14/Jan/08 3:14 PM
Affects Version: 2.0, 2.0.3, 2.0.4
Fixed Version:
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003
Related Issues:

FRS-44: Why has my FusionReactor (trial) license expired unexpectedly?

FRS-54: Running FusionReactor on a server that runs under a non administrative user account

FRS-103: need to run CFMX7 under a different domain account allowing CFMX to have network access rights. However, as soon as I give CFMX this user account to run under, everything breaks with Fusion Reactor?

[frs-103] need to run CFMX7 under a different domain account allowing CFMX to have network access rights. However, as soon as I give CFMX this user account to run under, everything breaks with Fusion Reactor?


If you run the CFMX server under a different account you have to make sure that this account has sufficient privileges to read and write to the FusionReactor directory (e.g. C:FusionReactor) and to the registry folder [HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefscomintergralfusionreactorlicenseenterprise].

Issue Details

Type: Technote
Issue Number: FRS-103
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 14/Jan/08 3:14 PM
Affects Version: 1.0, 2.0, 2.0.3
Fixed Version: 1.0, 2.0, 2.0.3
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, Solaris
Related Issues:

FRS-105: I manually installed FusionReactor using the built in web server on Port 8088 & everything seemed to work. I updated some settings in the interface, followed by a CF restart. All I see now is the License Expired screen. Is my license file old?

FRS-44: Why has my FusionReactor (trial) license expired unexpectedly?

FRS-54: Running FusionReactor on a server that runs under a non administrative user account

[frs-179] Can’t generate stack traces under Windows (2000, 2003, XP, Vista), Java 1.4


Problem

On Windows platforms using CF7 or other Java 1.4 VM, attempting to view a thread stack trace produces one of the following error messages:

  • Thread not found or already finished.
  • FusionReactor was unable to show you the stack trace but an attempt has been made to send the stack trace to the console or your runtime log file. Please check there.
  • Could not capture stack trace, attempted dump to stdout, please check there.

In these cases, a full stack trace is written to STDOUT (usually CFusionMX7runtimecoldfusion-out.log, or jrun4logscoldfusion-out.log for multiple instance installations), terminating with the message:

"Trace Error: Stack trace sent to the console; output could not be captured. Capture file open failed"

Solution

This error can be caused when FusionReactor is running as a non-default user, and fails to open a temporary file for the stack trace, prior to processing it and displaying it in the FusionReactor administrator. The temporary file is located in the root of C: and is removed immediately after processing.

To continue, you should ascertain the user account under which the ColdFusion service runs. You can find this out using the following procedure:

  • Open the Services control panel
  • Double click the ColdFusion MX 7 Application Server service
  • Open the Log On tab
  • Note down which account name is in use
  • Close this property sheet by clicking Cancel.

This user must be granted the Full Control permission on the C: folder (this permission is not required on any subdirectories) . The simplest way to do this is using the cacls utility.

  • Open a command prompt window (Start -> Run -> cmd.exe).
  • Run the following command, replacing cfusion with the user under which your ColdFusion service runs.
    • cacls c: /e /G cfusion:F
    • This command instructs windows to edit (/e) the permissions for c: by granting (/G) Full Control for the user cfusion (cfusion:F)

It should not be necessary to restart ColdFusion for this change to take effect.

Issue Details

Type: Technote
Issue Number: FRS-179
Components: Thread Management
Environment:
Resolution: Fixed
Last Updated: 02/Nov/07 9:46 AM
Affects Version: 1.0, 2.0, 2.0.3, 2.0.4
Fixed Version:
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003
Related Issues:

[frs-165] FusionReactor doesn’t find my JRun4 servers.


Having the server instances under a different directory then jrun4servers is (currently) not supported by the InstanceManager, so if you are using a different directory (such as a subdirectory) then the server will not be automatically found.

In order to run FusionReactor on these server instances you have to do a manual install and then add them using the Enterprise Dashboard->Manage Servers page.

To manually install an instance of FusionReactor do the following:

  1. Create a directory for the new instance (replace [instance name] with the name you want to give the instance) in the FusionReactor instance directory
        mkdir FusionReactorinstance[instance name]conf
    
  2. Copy the template FusionReactor property file to the conf directory
        copy FusionReactoretcconfreactor.conf 
            FusionReactorinstance[instance name]conf
    
  3. Edit the property file and adjust the properties
    crashprotection.logfile=C:/FusionReactor/instance/default/log/crashprotection.log
    jdbc.logfile=C:/FusionReactor/instance/default/log/jdbc.log
    logfile=C:/FusionReactor/instance/default/log/reactor.log
    name=default
    request.logfile=C:/FusionReactor/instance/default/log/request.log
    resource.logfile=C:/FusionReactor/instance/default/log/resource.log
    serializer.path=C:/FusionReactor/instance/default/serializer
    webserver.port=8088
    

    so that the paths use the new instance name instead of 'default' and the web server port is not already in use on your computer.

    crashprotection.logfile=C:/FusionReactor/instance/[instance name]/log/crashprotection.log
    jdbc.logfile=C:/FusionReactor/instance/[instance name]/log/jdbc.log
    logfile=C:/FusionReactor/instance/[instance name]/log/reactor.log
    name=[instance name]
    request.logfile=C:/FusionReactor/instance/[instance name]/log/request.log
    resource.logfile=C:/FusionReactor/instance/[instance name]/log/resource.log
    serializer.path=C:/FusionReactor/instance/[instance name]/serializer
    webserver.port=8099
    
  4. Copy the fusionreactor.jar file to the JRun4 server instance
        copy FusionReactoretclibfusionreactor.jar 
            [server instance dir]SERVER-INFlib
    

    Create the lib directory before if it does not exist.
    #Stop the JRun4 server
    #Insert the FusionReactor servlet filter definition into the default web descriptor of the JRun4 server instance.
    Edit [server instance dir]SERVER-INFdefault-web.xml and insert

    <filter>
      <filter-name>FusionReactor</filter-name>
      <filter-class>
        com.intergral.fusionreactor.filter.FusionReactorFilter
      </filter-class>
      <init-param>
        <param-name>config</param-name>
        <param-value>
          C:/FusionReactor/instance/[instance name]/conf/reactor.conf
        </param-value>
      </init-param>
    </filter>
    <filter-mapping>
      <filter-name>FusionReactor</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    as the first servlet filter as a child of the <web-app> root element.

  5. Restart the JRun4 server. The new FusionReactor instance should then be available (check the logs in the runtime/logs directory of the JRun4 server instance in case there are problems)

Issue Details

Type: Technote
Issue Number: FRS-165
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 31/Jul/07 2:50 PM
Affects Version: 2.0.4
Fixed Version:
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, JRun 4
Platform: Windows XP, Windows 2000, Windows 2003
Related Issues:

[frs-91] I have enabled Timeout Protection to abort and notify after a period of time. However it does not seem to be killing requests that run for longer than the defined time. Am I missing something?


The problem that you are seeing is most likely that the requests don't complete because they are waiting to send data to the browser. This is done via a socket which is a piece of native code that the server uses to return the CF page contents. It can happen however that the browser that is receiving the content keeps the connection open but doesn't consume any of the content sent by the server. This causes the situation that you see. FusionReactor unfortunately cannot kill these requests because of a limitation in Java itself that native code cannot be stopped. This is a known limitation of Java and there is no way around this in any of the current versions of Java.

Internet Explorer can create this problem due to a bug that it has of keeping the connection open when the window has been closed.

Issue Details

Type: Technote
Issue Number: FRS-91
Components: Crash Protection
Environment:
Resolution: Fixed
Last Updated: 14/Jun/07 4:03 PM
Affects Version: 1.0, 2.0
Fixed Version: 1.0, 2.0
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris
Related Issues:

[frs-77] I have Installed ColdFusion on WebSphere. Is there a way to install FusionReactor, to monitor ColdFusion on this environment?


Issue Details

Type: Technote
Issue Number: FRS-77
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 14/Jun/07 2:50 PM
Affects Version: 2.0
Fixed Version: 2.0
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, WebSphere
Platform: Windows XP, Windows 2000, Windows 2003, Linux, Solaris
Related Issues:

FRS-89: Can FusionReactor workwith ColdFusion MX J2EE when installed on websphere 5.1.1, if so are there any deployment instructions?

[frs-99] I’m installing FusionReactor on Windows. I am trying to run CF7 using JRun4. I’ve gone through the manual installation steps as found in your installer PDF, but i keep getting an error.


java.lang.AssertionError: java.security.KeyStoreException: Uninitialized keystore
	at com.intergral.lm.tlc.G.D(Unknown Source)
	at com.intergral.lm.tlc.G.A(Unknown Source)
	at com.intergral.lm.tlc.G.A(Unknown Source)
	at com.intergral.lm.tlc.E.A(Unknown Source)
	at com.intergral.lm.tlc.B.B.A(Unknown Source)
	at com.intergral.lm.tlc.E.E(Unknown Source)
	at com.intergral.fusionreactor.H.C.A(Unknown Source)
	at com.intergral.fusionreactor.L.C.A.A(Unknown Source)
	at com.intergral.fusionreactor.L.C.A.A(Unknown Source)
	at com.intergral.fusionreactor.L.C.A.B(Unknown Source)
	at com.intergral.fusionreactor.N.A.A(Unknown Source)
	at com.intergral.fusionreactor.N.D.run(Unknown Source)
	at com.intergral.fusionreactor.L.B.B$_B.run(Unknown Source)
Caused by: java.security.KeyStoreException: Uninitialized keystore
	at java.security.KeyStore.getKey(Unknown Source)
	... 13 more

If you run your ColdFusion server under a dedicated user account that has no administrative privileges, note that FusionReactor resp. the ColdFusion server needs to have (at least once) write access to the registry hive:

[HKEY_LOCAL_MACHINESOFTWAREJavaSoftPrefscomintergralfusionreactorlicense]

It's recommend to remove the license key from the registry, adjust the permissions and then restart the server again. If necessary upload the license file again.

Issue Details

Type: Technote
Issue Number: FRS-99
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 14/Jun/07 12:43 PM
Affects Version: 1.0, 2.0, 2.0.3
Fixed Version: 1.0, 2.0, 2.0.3
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003
Related Issues:

[frs-98] I did a manual Install of FusionReactor and cannot see the current instance in the Enterprise Dashboard afterwards


If you do a manual installation it is normal that the current instance is not listed in the Enterprise Dashboard.

To add any FusionReactor instance (remote or local) you can use the Manage Servers page in the Enterprise menu:

1) Give the instance that you want to add a name
2) Enter the URL to the instance, e.g. http://<your hostname>:8088/fusionreactor
3) Enter the password
4) Check the status is set to 'Online'
5) Click 'Add Server' to add the new FusionReactor instance to the Enterprise Dashboard.

To install a new local FusionReactor instance from the Administrator you can use the Instance Manager. On manual installations of FusionReactor you have to scan for any appropriate target servers first (this is done by the automated setup for you). Either manually add the server by choosing the type and the directory in which the server is installed (e.g. /C:/ColdFusionMX7, /opt/jrun4) and click on the 'Add Server ' button afterwards or let FusionReactor scan you system for you. Therefore you have to specify the directory from which the search should start and the number of sub directories the search should follow.

Once you see a list of target servers you can click on the green button to install a new instance of FusionReactor on the server. Give the new instance a name, a port for the internal web server and a password, then click 'Install Instance' to install it.
Note: if you use the same name and port as you have used in the manual installation (typically default and 8088) you can update your current instance. You can then click on the blue button to add the instance to the Enterprise Dashboard. Afterwards all buttons of this instance will be disabled (because it is the instance you are running on and you should not be able to delete it). Open the Enterprise Dashboard and you should see your instance.

Issue Details

Type: Technote
Issue Number: FRS-98
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 14/Jun/07 11:54 AM
Affects Version: 2.0
Fixed Version: 2.0
Server: ColdFusion 6, ColdFusion 7, ColdFusion 8, Flex Data Services, JBoss, JRun 4, LiveCycle Data Services, Tomcat, WebSphere, WebLogic
Platform: Windows XP, Windows 2000, Windows 2003, Linux, MacOS, Solaris
Related Issues: