<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
<channel>
    <title>code-complete - Coldfusion Server</title>
    <link>http://www.code-complete.com/code/</link>
    <description>est.1998 :: v. 8.0 </description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Tue, 20 Nov 2007 04:25:29 GMT</pubDate>

    <image>
        <url>http://www.code-complete.com/code/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: code-complete - Coldfusion Server - est.1998 :: v. 8.0 </title>
        <link>http://www.code-complete.com/code/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>0-Byte CFMail files in Spool and Undeliv Directories - scripts to delete</title>
    <link>http://www.code-complete.com/code/index.php?/archives/34-0-Byte-CFMail-files-in-Spool-and-Undeliv-Directories-scripts-to-delete.html</link>
            <category>Coldfusion Programming</category>
            <category>Coldfusion Server</category>
            <category>Win2K3 Server</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/34-0-Byte-CFMail-files-in-Spool-and-Undeliv-Directories-scripts-to-delete.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=34</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=34</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    Way back in the olden days of Coldfusion 4.5/5 I would occasionally see a 0-Byte file sitting in coldfusions mail spool directory which seemed to cause Coldfusion to hang and mail to queue up in the spool folder.  Well, since then in CFMX 7/8 when the server notices this file in the spool directory, it moves it immediately into the Undelivr directory.  However, it seems that the 0-Byte file in Undelivr does have some effects on the CF server, and we have seem Coldfusion MX7 become unreponsive to requests after a period of time when the 0-Byte file is present.  Here are a couple ways to get rid of that file.  The first is a windows batch file that can be called as a scheduled task, and the second is a coldfusion script that could be invoked as cf scheduled task or via GET or curl from the command line:&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the batch file:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
:: file rem0bytefiles.bat&lt;br /&gt;
:: SpireMedia, Inc. Thaddeus Batt thad@spiremedia.com&lt;br /&gt;
:: windows batch file for removing 0 byte files to be called on a scheduled&lt;br /&gt;
:: basis when 0-byte files get written to the cfmx mail undeliv folder&lt;br /&gt;
:: causing cfmx to go into a death spiral&lt;br /&gt;
&lt;br /&gt;
@echo off&lt;br /&gt;
&lt;br /&gt;
for /f &quot;tokens=* delims=&quot; %%F in (&#039;dir /s/b/a-d C:\CFusionMX7\Mail\Undelivr&#039;) do (&lt;br /&gt;
if 0 equ %%~zF del &quot;%%F&quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
And here&#039;s the cfscript:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;!---&lt;br /&gt;
:: file rem0bytefiles.bat&lt;br /&gt;
:: SpireMedia, Inc. Thaddeus Batt thad@spiremedia.com&lt;br /&gt;
:: windows batch file for removing 0 byte files to be called on a scheduled&lt;br /&gt;
:: basis when 0-byte files get written to the cfmx mail undeliv folder&lt;br /&gt;
:: causing cfmx to go into a death spiral&lt;br /&gt;
---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cfparam name=\&amp;quot;url.do\&amp;quot; default = \&amp;quot;nothing\&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfdirectory action=\&amp;quot;list\&amp;quot; directory=\&amp;quot;#ExpandPath(\&amp;quot;./\&amp;quot;)#\&amp;quot; name=\&amp;quot;dir\&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfif url.do eq \&amp;quot;delete\&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;cfif \&amp;quot;#dir.size#\&amp;quot; eq 0 and \&amp;quot;#dir.type#\&amp;quot; eq \&amp;quot;File\&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;cffile action = \&amp;quot;delete\&amp;quot; file = \&amp;quot;#dir.Directory#\#dir.name#\&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;/cfif&amp;gt;&lt;br /&gt;
&amp;lt;cfdirectory action=\&amp;quot;list\&amp;quot; directory=\&amp;quot;#ExpandPath(\&amp;quot;./\&amp;quot;)#\&amp;quot; name=\&amp;quot;dir1\&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var=\&amp;quot;&amp;dir1;\&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/cfif&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cfdirectory action=\&amp;quot;list\&amp;quot; directory=\&amp;quot;#ExpandPath(\&amp;quot;./\&amp;quot;)#\&amp;quot; name=\&amp;quot;dir1\&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;cfdump var=\&amp;quot;&amp;dir1;\&amp;quot;&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
Peace!&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 19 Nov 2007 14:41:05 -0700</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/34-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Crontab or CGI Script to Check on CFMX and Restart if it's Hung</title>
    <link>http://www.code-complete.com/code/index.php?/archives/32-Crontab-or-CGI-Script-to-Check-on-CFMX-and-Restart-if-its-Hung.html</link>
            <category>Coldfusion Server</category>
            <category>Redhat Linux</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/32-Crontab-or-CGI-Script-to-Check-on-CFMX-and-Restart-if-its-Hung.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=32</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=32</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    Here is a perl script that can be called via command line in a crontab file or via http post.  It takes one paramter, which is host=www.foo.com.  This is follow up posting to my earlier code post for &lt;a href=&quot;http://www.code-complete.com/code/index.php?/archives/2-Restarting-CFMX-via-http-remotely-and-automated.html&quot;  title=&quot;remote&quot;&gt;checking and restarting cfmx remotely&lt;/a&gt;, which was more focused on a windows enviro.  The following script is primarily geared toward use in a n*x environment running on the localhost, though it could easily be modified to run on a single host and be invoked to check on and restart multiple servers.&lt;br /&gt;
&lt;br /&gt;
Here it is:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
#  SpireMedia, Inc.  Thaddeus Batt thad@spiremedia.com&lt;br /&gt;
#  Perl script for restarting coldfusion to be called on a scheduled&lt;br /&gt;
#  basis when frequent and unanticipated restarts of a cf server are required&lt;br /&gt;
#  &lt;br /&gt;
#  Please note that there are 2 ways to use this script&lt;br /&gt;
#  it can be set up as a cgi script that is involked by a web browser&lt;br /&gt;
#  or it can be run from a cron job directly (this is preferred)&lt;br /&gt;
#  &lt;strong&gt;if&lt;/strong&gt; the script is used in cgi mode, you will need to use&lt;br /&gt;
#  the telnet method of restarting cf which means you need to&lt;br /&gt;
#  enable telnet as well as allow root access via telnet, which&lt;br /&gt;
#  may be a security risk for which I take no responsibility&lt;br /&gt;
#  USE THIS CODE AT YOUR OWN RISK&lt;br /&gt;
#  Date: 10/23/2007&lt;br /&gt;
&lt;br /&gt;
#first lets flush the writes&lt;br /&gt;
$|=1;&lt;br /&gt;
&lt;br /&gt;
#bring in the modules we need&lt;br /&gt;
use Net::Telnet;&lt;br /&gt;
use English;&lt;br /&gt;
use HTTP::Headers;&lt;br /&gt;
use HTTP::Request;&lt;br /&gt;
use LWP::Simple;&lt;br /&gt;
use LWP::UserAgent;&lt;br /&gt;
use URI::Escape;&lt;br /&gt;
use File::Basename;&lt;br /&gt;
use POSIX;&lt;br /&gt;
&lt;br /&gt;
$host = &#039;http://&#039; . GetCgiParam(&#039;host&#039;);&lt;br /&gt;
&lt;br /&gt;
#you can use this to set up a default hostname&lt;br /&gt;
if (! $host) {&lt;br /&gt;
	$host=&#039;http://localhost&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$timeout = 30;&lt;br /&gt;
$reload = 1;&lt;br /&gt;
$url = &#039;/CFIDE/administrator/&#039;;&lt;br /&gt;
#if restart_on_err is set the function will restart cfmx services and log the error&lt;br /&gt;
$restart_on_err = 1;&lt;br /&gt;
#this needs to be set to a directory on the machine where you want the log files to live&lt;br /&gt;
$path2log = &#039;c:\\temp\\&#039;;&lt;br /&gt;
#this is just to see what&#039;s going on from command line&lt;br /&gt;
print $host.$url;&lt;br /&gt;
&lt;br /&gt;
#and here we go...&lt;br /&gt;
$alive = GetCFMXPageOrRestart(&amp;quot;$host$url&amp;quot;,&lt;br /&gt;
				    $timeout, $user, $pass, $reload);&lt;br /&gt;
&lt;br /&gt;
exit;&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
sub GetPage {&lt;br /&gt;
    my ($url, $timeout, $user, $password, $reload) = @_;&lt;br /&gt;
    my $ua = new LWP::UserAgent;&lt;br /&gt;
    $ua-&amp;gt;use_alarm(1);&lt;br /&gt;
    $ua-&amp;gt;timeout($timeout) if ($timeout);&lt;br /&gt;
    my $headers = new HTTP::Headers;&lt;br /&gt;
    $headers-&amp;gt;authorization_basic($user, $password);&lt;br /&gt;
    $headers-&amp;gt;header(Pragma =&amp;gt; &#039;no-cache&#039;) if $reload;&lt;br /&gt;
    my $request = new HTTP::Request(&amp;quot;GET&amp;quot;, $url, $headers);&lt;br /&gt;
    my $response = $ua-&amp;gt;request($request, undef, undef);&lt;br /&gt;
&lt;br /&gt;
    ($response-&amp;gt;is_success,&lt;br /&gt;
     $response-&amp;gt;code,&lt;br /&gt;
     $response-&amp;gt;content,&lt;br /&gt;
     $response-&amp;gt;error_as_HTML);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub GetCFMXPage {&lt;br /&gt;
    my $url = $_[0];&lt;br /&gt;
    my ($httpstatus, $httpcode, $httppage, $httperrorHTML) = GetPage(@_);&lt;br /&gt;
    if ($httppage =~ /TDS stream/) {&lt;br /&gt;
	open LOG,&amp;quot;&amp;gt;&amp;gt;widelog&amp;quot;;&lt;br /&gt;
	print LOG &amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;\n$url\n&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print LOG $httppage;&lt;br /&gt;
	close LOG;&lt;br /&gt;
	$httpstatus = 0;&lt;br /&gt;
    }&lt;br /&gt;
    ($httpstatus, $httpcode, $httppage, $httperrorHTML);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub GetCFMXPageOrRestart {&lt;br /&gt;
     my ($httpstatus, $httpcode, $httppage, $httperrorHTML) = GetCFMXPage(@_);&lt;br /&gt;
    my $url = $_[0];&lt;br /&gt;
    if ( $restart_on_err ) {&lt;br /&gt;
	if ($httpcode != 200&lt;br /&gt;
	    || (!$httpstatus &amp;amp;&amp;amp; 200 == $httpcode) )  {&lt;br /&gt;
	    ($sec, $min, $hour, $mday, $mon, $year) = localtime;&lt;br /&gt;
	    $mon++;&lt;br /&gt;
	    my $fname = sprintf( &amp;quot;$path2log%2.2d%2.2d%2.2d-%2.2d%2.2d%2.2d.err&amp;quot;,&lt;br /&gt;
				$hour, $min, $sec, $year, $mon, $mday );&lt;br /&gt;
	    open(ERRFILE,&amp;quot;&amp;gt;$fname&amp;quot;);&lt;br /&gt;
	    print ERRFILE &amp;quot;GetCFMXPage failed at $hour:$min:$sec on $mon/$mday/$year\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;starttime=$starttime\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;reportcount=$reportcount\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;url=$url\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;httpstatus=$httpstatus\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;httpcode=$httpcode\n&amp;quot;;&lt;br /&gt;
	    print ERRFILE &amp;quot;httperrorHTML=$httperrorHTML\n&amp;quot;;&lt;br /&gt;
	    close(ERRFILE);&lt;br /&gt;
	    print &amp;quot;\nfile=$fname\n&amp;quot;;&lt;br /&gt;
	    RestartCFMX();&lt;br /&gt;
	    exit;&lt;br /&gt;
	    #die &amp;quot;Aborted: $fname\n&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
sub GetCgiParam {&lt;br /&gt;
    my ($paramname) = @_;&lt;br /&gt;
    my ($request_method, $query_string);&lt;br /&gt;
    if (! %cgiparams) {&lt;br /&gt;
        $request_method = $ENV{REQUEST_METHOD};&lt;br /&gt;
        if ($request_method eq &#039;GET&#039;) {&lt;br /&gt;
            $query_string = $ENV{QUERY_STRING};&lt;br /&gt;
        }&lt;br /&gt;
        elsif ($request_method eq &#039;POST&#039;) {&lt;br /&gt;
            read (STDIN, $query_string, $ENV{CONTENT_LENGTH});&lt;br /&gt;
        }&lt;br /&gt;
        elsif ($ARGV[0]) {&lt;br /&gt;
            $query_string = $ARGV[0];&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            die Usage();&lt;br /&gt;
        }&lt;br /&gt;
        foreach $pair (split /&amp;amp;/, $query_string) {&lt;br /&gt;
            my ($key, $value) = split /=/, $pair;&lt;br /&gt;
            $value =~ tr/+/ /;&lt;br /&gt;
            $value =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack &#039;C&#039;, hex($1)/eg;&lt;br /&gt;
            $cgiparams{$key} = $value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $cgiparams{$paramname};&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sub RestartCFMX	{&lt;br /&gt;
&lt;br /&gt;
#the following allow this script to run from cgi, note that you will&lt;br /&gt;
#be putting the root user password in here if you run it this way&lt;br /&gt;
#this is a security risk - if your webserver ever got it&#039;s&lt;br /&gt;
#mime-type mappings screwed up this pl could be served as plain text&lt;br /&gt;
#exposing your root pawword to anyone who can find it&lt;br /&gt;
#you should take security measures appropriate to your situation	&lt;br /&gt;
&lt;br /&gt;
# $telnet = new Net::Telnet ( Timeout=&amp;gt;30, Errmode=&amp;gt;&#039;die&#039;);&lt;br /&gt;
# $telnet-&amp;gt;open(&#039;$host&#039;);&lt;br /&gt;
# $telnet-&amp;gt;waitfor(&#039;/login: $/i&#039;);&lt;br /&gt;
# $telnet-&amp;gt;print(&#039;root&#039;);&lt;br /&gt;
# $telnet-&amp;gt;waitfor(&#039;/password: $/i&#039;);&lt;br /&gt;
# $telnet-&amp;gt;print(&#039;password&#039;);&lt;br /&gt;
# $telnet-&amp;gt;waitfor(&#039;/# $/i&#039;);&lt;br /&gt;
# $telnet-&amp;gt;print(&#039;/opt/coldfusionmx7/bin/coldfusion restart&#039;);&lt;br /&gt;
# $output = $telnet-&amp;gt;waitfor(&#039;/# $/i&#039;);&lt;br /&gt;
# print &amp;quot;Content-Type: text/html\n\n&amp;quot;;&lt;br /&gt;
# print $output;&lt;br /&gt;
&lt;br /&gt;
#this is safer code if you are able to run this script via&lt;br /&gt;
#the root user&#039;s crontab&lt;br /&gt;
@args_exe = (&amp;quot;/opt/coldfusionmx7/bin/coldfusion&amp;quot;,&amp;quot;restart&amp;quot;);&lt;br /&gt;
system(@args_exe) == 0&lt;br /&gt;
   or die &amp;quot;it didn&#039;t work:  @args_exe&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print &amp;lt;&amp;lt;HTMLDOC;&lt;br /&gt;
&amp;lt;body &amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;restarting services&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HTMLDOC&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sub Usage {&lt;br /&gt;
    print &amp;lt;&amp;lt;USAGE;&lt;br /&gt;
checkandrestartcfmx.pl host=HOSTNAME&lt;br /&gt;
     host is hostname to be prepended to script URLs&lt;br /&gt;
     example:  localhost  or 216.87.22  or www.code-complete.com    &lt;br /&gt;
USAGE&lt;br /&gt;
}&lt;br /&gt;
    exit;&lt;br /&gt;
&lt;/code&gt; 
    </content:encoded>

    <pubDate>Fri, 02 Nov 2007 15:43:52 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/32-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Using Coldfusion Archives to migrate datasources</title>
    <link>http://www.code-complete.com/code/index.php?/archives/21-Using-Coldfusion-Archives-to-migrate-datasources.html</link>
            <category>Coldfusion Server</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/21-Using-Coldfusion-Archives-to-migrate-datasources.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    Even if you you don&#039;t typically use Coldfusion&#039;s baked-in packaging and deployment for deploying your web applications, you really should look at using CAR files to migrate datasources from a cfmx 7 server to a cfmx 8 server.  It literally took me 5 minutes to get over 100 datasources onto a new cfmx 8 j2ee instance.&lt;br /&gt;
&lt;br /&gt;
The interface and workflow for creating the car files is pretty clunky and not real intuitve, but it does work:&lt;br /&gt;
&lt;br /&gt;
1. go to CFAdmin and select Coldfusion Archives under packaging and deployment tab&lt;br /&gt;
2. key in an archive name and click create&lt;br /&gt;
3. click the edit icon and start the &quot;wizard&quot;&lt;br /&gt;
4. click on Deselect All then on Data Sources&lt;br /&gt;
5. check boxes next all datasources you want to migrate and close window&lt;br /&gt;
6. Click on the build car icon (the middle one) next to the newly configures car&lt;br /&gt;
7. click on next in the lower right of the window and select the target file location&lt;br /&gt;
8. Next again, then Build&lt;br /&gt;
&lt;br /&gt;
For importing, you simply go to Car Archives and under  Deploy an Existing Archive, select the file you created and click on Deploy.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 15 Aug 2007 16:06:50 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/21-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>FC7 + CFMX 8 + Tomcat + 64-bit jvm 1.6 = Sweetness</title>
    <link>http://www.code-complete.com/code/index.php?/archives/20-FC7-+-CFMX-8-+-Tomcat-+-64-bit-jvm-1.6-Sweetness.html</link>
            <category>Coldfusion Server</category>
            <category>Redhat Linux</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/20-FC7-+-CFMX-8-+-Tomcat-+-64-bit-jvm-1.6-Sweetness.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    Today (well, and yesterday) was primarily spent getting cfmx 8 installed on a 64-bit Fedora 7 box.  That normally should take about 10 minutes, but I didn&#039;t want the default install.  I wanted (as I have for some time) a native 64-bit instance of Coldfusion.  And now I have one.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:10 --&gt;&lt;img width=&#039;491&#039; height=&#039;523&#039; style=&quot;float: center; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.code-complete.com/code/uploads/cf_jvm.GIF&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Here is what I needed to do to get this installed, hopefully it can save you some time if you are trying to do the same.  The process will be similar on other 64-bit distros, and there are some gotchas for sure.&lt;br /&gt;
&lt;br /&gt;
With this machine, my preference is to install everything I possibly can via yum rather than download and compile source just to make application management easier.  So here&#039;s a list of the RPMs that were installed in support of the application (not all are needed):&lt;br /&gt;
&lt;br /&gt;
APR-1.2.8-7x86_64&lt;br /&gt;
APR-devel-1.2.8-7x86_64&lt;br /&gt;
APR-util-1.2.8-7x86_64&lt;br /&gt;
APR-util-devel-1.2.8-7x86_64&lt;br /&gt;
openssl-0.98b-12.fc7.x86_64&lt;br /&gt;
openssl-devel-0.98b-12.fc7.x86_64&lt;br /&gt;
http-2.2.4-1.fc7.x86_64&lt;br /&gt;
http-devel-2.2.4-1.fc7.x86_64&lt;br /&gt;
jakarta-commons-logging-1.0.4-6jpp.1.x86_64&lt;br /&gt;
mod_ssl-1:2.2.4-1.fc7.x86_64&lt;br /&gt;
tomcat5-5.5.23-9jpp.2.fc7.x86_64&lt;br /&gt;
tomcat5-jsp-2.0-api-5.5.23-9jpp.2.fc7.x86_64&lt;br /&gt;
tomcat5-servlet-2.4-api-5.5.23-9jpp.2.fc7.x86_64&lt;br /&gt;
and finally:&lt;br /&gt;
jdk-6u2-linux-amd64 (from Sun)&lt;br /&gt;
&lt;br /&gt;
The default JDK installed with the OS was the 32-bit 1.5 version and in fedora there are Sym links under /var/lib/alternatives - you will need to update these sym links to point to the 64-bit java components if you plan on using the default JAVA_HOME variable (/usr/lib/jvm/java) within the tomcat5.conf file.  Alternately, you can add the following lines into /etc/tomcat5/tomcat5.conf &lt;strong&gt;AND&lt;/strong&gt; /etc/sysconfig/tomcat5:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
JAVA_HOME=&quot;/usr/java/jdk1.6.0_02&quot;&lt;br /&gt;
JRE_HOME=&quot;/usr/java/jdk1.6.0_02/jre&quot;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now fire up tomcat using /etc/init.d/tomcat5 start and take a look at the catalina.out log under /usr/share/tomcat/logs/ and check the library path and/or the JRE_HOME being reported to ensure it&#039;s using the 64-bit jvm.&lt;br /&gt;
&lt;br /&gt;
Next run the Coldfusion-8-lin.bin installer and select the option for j2ee deploy as WAR and run the install.  This will create a cfusion.war and an rds.war package uner /opt/coldfusion8/.  Now move the cfusion.war file to tomcat&#039;s webapps directory (/usr/share/tomcat5/webapps) and then copy the rds.war to the webapps directory and rename it CFIDE.war.&lt;br /&gt;
&lt;br /&gt;
Tomcat should automatically deploy the cfusion.war file into a cfusion directory.  You need to go into cfusion/WEB-INF/cfusion/lib and rename the tools.jar to something else.  At this point, tomcat may crash or hang.  You should stop it: /etc/init.d/tomcat5 stop.  You might still be looking at the catalina.out file if you were using tail -f and you might notice the following line:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Error [ContainerBackgroundProcessor[StandardEngine[Catalina]] - Unable to initialize Security service: coldfusion.runtime.Encryptor$invalidParametersForEncryptionException:  An error occurred while trying to encrypt or decrypt you input striong:  5 trailing bytes.&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
So now you will need the Java Cryptography Extension (JCE) Unlinmited Strength Juristiction Policy Files 6, available from &lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot; &gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt; at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
Backup and replace your US_export_policy.jar and local_policy.jar files from /usr/java/jdk1.6.0_02/jre/lib/security with the unlimited strength files.&lt;br /&gt;
&lt;br /&gt;
Start tomcat:  /etc/init.d/tomcat5 start&lt;br /&gt;
point your browser here:  http://localhost:8080/cfusion/CFIDE/administrator&lt;br /&gt;
and hopefully you&#039;ll see this:&lt;br /&gt;
&lt;!-- s9ymdb:11 --&gt;&lt;img width=&#039;110&#039; height=&#039;69&#039; style=&quot;float: center; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.code-complete.com/code/uploads/cfadmin.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Next up:  Getting the apache/tomcat connectors set up.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 15 Aug 2007 13:38:41 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/20-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>jr. tech writers are so amusing</title>
    <link>http://www.code-complete.com/code/index.php?/archives/9-jr.-tech-writers-are-so-amusing.html</link>
            <category>Coldfusion Programming</category>
            <category>Coldfusion Server</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/9-jr.-tech-writers-are-so-amusing.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    according to this ridiculous assertion:&lt;br /&gt;
&lt;a href=&quot;http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;taxonomyName=storage&amp;articleId=9020942&amp;taxonomyId=19&amp;intsrc=kc_feat&quot;  title=&quot;computerworld&quot;&gt;http://www.computerworld.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
CF is the in 5th place for the &lt;strong&gt;most&lt;/strong&gt; dead computer skill after Cobol (yes! a programming language), VAX IDMS (non-relational database), Non-IP Networks (honestly, i didn&#039;t even know these still existed), and cc:Mail (not sure what the &quot;skill&quot; here is)&lt;br /&gt;
&lt;br /&gt;
C fits in there as well.  but oddly no mention of eiffel, fortran, logo, VB, Apple Basic, etc (all of which i see on resumes, still!).&lt;br /&gt;
&lt;br /&gt;
The reporter may have tried visiting &lt;a href=&quot;http://www.tiobe.com/index.htm?tiobe_index&quot;  title=&quot;tiobe&quot;&gt;http://www.tiobe.com/index.htm?tiobe_index&lt;/a&gt; for some research.  And for cf, maybe checking the list here:&lt;br /&gt;
&lt;a href=&quot;http://www.gotcfm.com/thelist.cfm&quot; &gt;http://www.gotcfm.com/thelist.cfm&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This was my comment:&lt;br /&gt;
&lt;br /&gt;
Perhaps you haven&#039;t been paying attention to cf for past 4 years, and that&#039;s fine.  But calling CF a scripting engine sorta shows your hand.  CF is an abstraction layer to make java programming more efficient and faster, and it does a very good job of that.  Putting an OO programmer in front of a cfmx app base that has been architected using component-based SOA design-patterns produces results quickly and reliably.  Plus, we can package and deploy our cfmx apps in java byte code as .war or .ear files under &lt;strong&gt;most&lt;/strong&gt; j2ee app servers.  additionally, using bluedragon, those apps can be deployed under .NET.&lt;br /&gt;
&lt;br /&gt;
The only gripe I have with it is 64-bit native (un)compatibility.  I&#039;ll be installing beta scorpian on 64-bit FC6 to see how it handles memory for the JVM. 
    </content:encoded>

    <pubDate>Thu, 24 May 2007 20:17:54 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/9-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Adobe Site of the Day</title>
    <link>http://www.code-complete.com/code/index.php?/archives/7-Adobe-Site-of-the-Day.html</link>
            <category>Coldfusion Server</category>
            <category>SpireMedia</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/7-Adobe-Site-of-the-Day.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    &lt;a href=&quot;http://www.spiremedia.com&quot;&gt;SpireMedia&lt;/a&gt;-built &lt;a href=&quot;http://socialissues.wiseto.com/&quot; target=&quot;_blank&quot;&gt;Wise to Social Issues&lt;/a&gt; has been selected as the &lt;a href=&quot;http://www.adobe.com/showcase/&quot; target=&quot;_blank&quot;&gt;Official Adobe Site of the Day&lt;/a&gt; for Wednesday, May 16th 2007.  Wise to Social Issues runs on the renowned SpireESM platform.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://www.spiremedia.com/docs/SpireESMScreenshots/SiteOfTheDay.jpg&quot;&gt;&lt;br /&gt; &lt;br /&gt;
&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 15 May 2007 21:11:00 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/7-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Restarting CFMX via http remotely and automated</title>
    <link>http://www.code-complete.com/code/index.php?/archives/2-Restarting-CFMX-via-http-remotely-and-automated.html</link>
            <category>Coldfusion Server</category>
            <category>Tools of the Trade</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/2-Restarting-CFMX-via-http-remotely-and-automated.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    In working with an under-memoried server and a cfmx application that would hang JRUN periodically, I decided to come up with a way to remotely restart cfmx via a URL call.  My first thought was to write a simple ASP page that made a system call to a restart bat file like Pete created a while ago (&lt;a href=&quot;http://www.petefreitag.com/item/87.cfm&quot;&gt;Batch files to restart cfmx&lt;/a&gt;).  However, I soon remembered that the added security in ASP these days precluded that solution.  So I went old school and fell back to perl.  I wrote the following perl script to make a system call to the  VBSscript file that follows:&lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
(you can download a zip with all the needed files &lt;a href=&quot;http://www.code-complete.com/code/uploads/cfmx_remote_restart.zip&quot; title=&quot;cfmx_remote_restart.zip&quot;&gt;here&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/perl&lt;br /&gt;
&lt;br /&gt;
#  SpireMedia, Inc.  Thaddeus Batt thad@spiremedia.com&lt;br /&gt;
#  perl script that calls VBscript to restart the coldfusion services&lt;br /&gt;
#  Date: 02/23/2007&lt;br /&gt;
&lt;br /&gt;
$| = 1;&lt;br /&gt;
print &amp;quot;Content-Type: text/html\n\n&amp;quot;;&lt;br /&gt;
@args_exe = (&amp;quot;%COMSPEC%&amp;quot;,&amp;quot;/C&amp;quot;,&amp;quot;cscript&amp;quot;,&amp;quot;C:\\cfusionmx7\\bin\\restartcfmx.vbs&amp;quot;);&lt;br /&gt;
system(@args_exe) == 0&lt;br /&gt;
   or die &amp;quot;it didn&#039;t work:  @args_exe&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# and comment out the print section for go live version&lt;br /&gt;
print &amp;lt;&amp;lt;HTMLDOC;&lt;br /&gt;
&amp;lt;body &amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;restarting services&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HTMLDOC&lt;br /&gt;
exit;&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
And here&#039;s the VBScript:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;br /&gt;
&#039;  SpireMedia, Inc.  Thaddeus Batt thad@spiremedia.com&lt;br /&gt;
&#039;  vbscript that calls wmi service to restart the coldfusion services&lt;br /&gt;
&#039;  this script can be called via the associated perl script&lt;br /&gt;
&#039;  the default location of this file is&lt;br /&gt;
&#039;  C:\cfusionmx7\bin\restartcfmx.vbs&lt;br /&gt;
&#039;  Date: 02/23/2007&lt;br /&gt;
Option Explicit&lt;br /&gt;
Dim objWMIService, objItem, objService&lt;br /&gt;
Dim colListOfServices, strComputer, strService, intSleep&lt;br /&gt;
strComputer = &quot;.&quot;&lt;br /&gt;
intSleep = 15000&lt;br /&gt;
WScript.Echo &quot; Click OK, then wait &quot; &amp;amp; intSleep &amp;amp; &quot; milliseconds&quot;&lt;br /&gt;
&lt;br /&gt;
On Error Resume Next&lt;br /&gt;
&#039; NB strService is case sensitive.&lt;br /&gt;
strService = &quot; &#039;ColdFusion MX 7 Application Server&#039; &quot;&lt;br /&gt;
WScript.Echo strService&lt;br /&gt;
Set objWMIService = GetObject(&quot;winmgmts:&quot; _&lt;br /&gt;
&amp;amp; &quot;{impersonationLevel=impersonate}!\\&quot; _&lt;br /&gt;
&amp;amp; strComputer &amp;amp; &quot;\root\cimv2&quot;)&lt;br /&gt;
Set colListOfServices = objWMIService.ExecQuery _&lt;br /&gt;
(&quot;Select * from Win32_Service Where Name =&quot;_&lt;br /&gt;
&amp;amp; strService &amp;amp; &quot; &quot;)&lt;br /&gt;
WScript.Echo colListofServices&lt;br /&gt;
For Each objService in colListOfServices&lt;br /&gt;
objService.StopService()&lt;br /&gt;
WSCript.Sleep intSleep&lt;br /&gt;
objService.StartService()&lt;br /&gt;
Next&lt;br /&gt;
WScript.Echo &quot;Your &quot;&amp;amp; strService &amp;amp; &quot; service has Started&quot;&lt;br /&gt;
WScript.Quit&lt;br /&gt;
&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Now, I can point by browser to call the .pl script whenever i want to restart the services, or I can create a page like this in ASP, which makes a URL get to a CF page and checks the status then programatically calls the restart services if needed:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&amp;lt;%@ LANGUAGE=&amp;quot;VBSCRIPT&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%Response.Buffer = True %&amp;gt;&lt;br /&gt;
&amp;lt;%&lt;br /&gt;
dim url, strstatus, strhealth&lt;br /&gt;
 url = &amp;quot;http://beta.xxxx.org/applications/heartbeat.cfm&amp;quot;&lt;br /&gt;
	set xmlhttp = server.CreateObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
    xmlhttp.open &amp;quot;GET&amp;quot;, url, false&lt;br /&gt;
    xmlhttp.send()&lt;br /&gt;
strstatus = xmlhttp.Status&lt;br /&gt;
if strstatus = &amp;quot;200&amp;quot; then&lt;br /&gt;
	strhealth=xmlhttp.responseText&lt;br /&gt;
      response.write strhealth&lt;br /&gt;
	response.write &amp;quot;&amp;lt;br /&amp;gt;&amp;quot; &amp;amp; strstatus&lt;br /&gt;
else&lt;br /&gt;
dim url2&lt;br /&gt;
strhealth = &amp;quot;dead&amp;quot;&lt;br /&gt;
url2 = &amp;quot;http://beta.xxxx.org/applications/restartcfmx.pl&amp;quot;&lt;br /&gt;
    set xmlhttp2 = server.CreateObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;)&lt;br /&gt;
    xmlhttp2.open &amp;quot;GET&amp;quot;, url, false&lt;br /&gt;
    xmlhttp2.send()&lt;br /&gt;
&lt;br /&gt;
      response.write strstatus&lt;br /&gt;
	response.write xmlhttp.responseText&lt;br /&gt;
end if&lt;br /&gt;
%&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Finally, I would create a scheduled task using curl to call the ASP page once an hour.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 18 Apr 2007 15:28:13 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/2-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Installing CFMX 7 on 64-bit OSes</title>
    <link>http://www.code-complete.com/code/index.php?/archives/1-Installing-CFMX-7-on-64-bit-OSes.html</link>
            <category>Coldfusion Server</category>
            <category>Redhat Linux</category>
    
    <comments>http://www.code-complete.com/code/index.php?/archives/1-Installing-CFMX-7-on-64-bit-OSes.html#comments</comments>
    <wfw:comment>http://www.code-complete.com/code/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.code-complete.com/code/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (thaddeus)</author>
    <content:encoded>
    As we all know, Coldfusion MX7 does not have native support for 64-Bit OSes, which is really my only real gripe about the app server.  It will run on 64-bit systems in 32-bit mode, with a 32-bit JVM.  It&#039;s a pretty straightforward install on the windows platform - the only gotcha there is that one must enable 32-bit compatibility in IIS:&lt;br /&gt;
&lt;br /&gt;
cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true&lt;br /&gt;
&lt;br /&gt;
(&lt;a href=&quot;http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/405f5bb5-87a3-43d2-8138-54b75db73aa1.mspx?mfr=true&quot; &gt;Microsoft&#039;s Info Here&lt;/a&gt;)&lt;br /&gt;
&lt;hr size=1 noshade /&gt;&lt;br /&gt;
&lt;br /&gt;
But there are few more things to be dealt with when running cfmx in a 64-bit linux enviro:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt; IPv6. The Apache connector configuration fails to find a running JRun server in most SuSe Linux installations. The SuSE 9.x default installation configures IPv6. The connector installer is incompatible with IPv6. To avoid this issue, you should inspect and, if necessary, change the configuration to IPv4 before configuring the Apache connector. To do so, comment out the feature in the appropriate .conf file as follows, and restart the operating system.&lt;br /&gt;
On SuSE 9.0:&lt;br /&gt;
/etc/modules.conf&lt;br /&gt;
#alias net-pf-10 ipv6&lt;br /&gt;
&lt;br /&gt;
On SuSE 9.1-9.3:&lt;br /&gt;
/etc/modprobe.conf&lt;br /&gt;
#alias net-pf-10 ipv6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: &lt;br /&gt;
You need to also edit the /etc/hosts file to remove IPv6 from localhost&lt;br /&gt;
&lt;br /&gt;
You want to be sure that /etc/hosts registers &quot;localhost&quot; using the old-fashioned IPv4 numbers, not as a new IPv6 number.&lt;br /&gt;
If &quot;localhost&quot; is defined both ways, the IPv6 way will take precedence - and possibly mess up Verity access.&lt;br /&gt;
&lt;br /&gt;
If you find a line in /etc/hosts like this:&lt;br /&gt;
&lt;br /&gt;
::1 localhost ipv6-localhost ipv6-loopback&lt;br /&gt;
&lt;br /&gt;
you should comment it out with a #, or at least remove the &quot;localhost&quot; name from the list.&lt;br /&gt;
&lt;br /&gt;
There should already be a line in /etc/hosts like this to define the IPv4 address:&lt;br /&gt;
&lt;br /&gt;
127.0.0.1 localhost linux.site linux&lt;br /&gt;
&lt;br /&gt;
&lt;hr size=1 noshade /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt;For RedHat 3.0 and SuSE users, ensure that the &quot;Legacy Software Applications&quot; (RedHat) or &quot;Compat&quot; (SuSE) package is installed; this installs the correct compat-&amp;lowast;  libraries to run the connector. If it isn&#039;t installed, the Apache connector hangs.&lt;br /&gt;
rpm -q libstdc++&lt;br /&gt;
rpm -q glibc (If glibc 2.2.5.x or higher, this compatibility package is required.)&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, you can also recompile the connector:&lt;br /&gt;
&lt;br /&gt;
     	&amp;lowast; Edit the cfmx-connector.sh file if you are installing the multiserver edition, or the apache-connector.sh file if you are installing the server configuration and add the -apxs switch. Run the script to install and compile the connector.&lt;br /&gt;
      	&amp;lowast; Select the [Advanced] options / [Build Apache module from source...] check box in the Web Server Configuration Tool (wsconfig.jar).&lt;br /&gt;
&lt;br /&gt;
All compile options require GNU Compiler Collection (GCC).&lt;br /&gt;
&lt;br /&gt;
The following Novell SuSE Linux versions may be affected:&lt;br /&gt;
&lt;br /&gt;
     &amp;lowast;SuSE Linux Enterprise Server 8&lt;br /&gt;
    &amp;lowast;SuSE 8.1 (2.4.19 kernel)&lt;br /&gt;
    &amp;lowast;SuSE 7.3 (2.4.10 kernel)&lt;br /&gt;
    &amp;lowast;SuSE 9.x&lt;br /&gt;
&lt;br /&gt;
Note: SuSE Pro versions require Apache 2.0 and GCC Red Het Package Manager (RPM) to compile the connector.&lt;br /&gt;
&lt;br /&gt;
&lt;hr size=1 noshade /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt; Finally, the 64 bit version requires that the mod_jrun shared object be built on the server, in order to do this, the apache-devel packages must be installed.  additionally, there is a bug in the build script that tries to compile the module - for apache2, the apxs utility that gets installed is actually called apxs2, but the build scripts call apxs, that means you need to create a sym link in /usr/sbin/ to create an alias to apxs2 called apxs.&lt;br /&gt;
&lt;br /&gt;
in order to tell the installer to build the module, you need to edit the file /opt/coldfusionmx7/bin/cfmx-connectors.sh  and add -apxs switch to the command line call to wsconfig.jar - NOT the apache-connector.sh file as referenced in the tech note.  also, you must comment out a section in both the connector script and the coldfusion script:&lt;br /&gt;
&lt;br /&gt;
#if [ ! &quot;$SUSEFLAG&quot; ]; then&lt;br /&gt;
#LD_ASSUME_KERNEL=2.2.9&lt;br /&gt;
#export LD_ASSUME_KERNEL&lt;br /&gt;
#fi&lt;br /&gt;
&lt;br /&gt;
once the connector is installed, you then need to stop and start apache2&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 17 Apr 2007 16:21:09 -0600</pubDate>
    <guid isPermaLink="false">http://www.code-complete.com/code/index.php?/archives/1-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>

</channel>
</rss>