CFML Gateway in CF8
I am getting the error below while try to run cfml gateway
from CF8
Error invoking CFC for gateway CreatePDF: An exception
occurred when performing document processing.
{ORIGINATORID={CFMLGateway},DATA={{MARKETNAME={Phoenix},USERID={258},ORIENTATION={portrai t},FILE={defaultEventLog},PRODUCTID={},FILENAME={ProfileVersion1.cfm?PropId=5039&marketId= 1&renttype=net&fomat=pdf&UserID=258&reporttitle=ProfileVersion1&orientation=portrait},SAVE FILENAME={258_ProfileVersion1_9_24_39.pdf}}},GATEWAYID={CreatePDF},GATEWAYTYPE={CFMLGatewa y}}.
The cause of this exception was that:
coldfusion.runtime.UndefinedVariableException: Variable CFEVENT is
undefined..
Please help me to solve this issue
I am getting the error below while try to run cfml gateway
from CF8
Error invoking CFC for gateway CreatePDF: An exception
occurred when performing document processing.
{ORIGINATORID={CFMLGateway},DATA={{MARKETNAME={Phoenix},USERID={258},ORIENTATION={portrai t},FILE={defaultEventLog},PRODUCTID={},FILENAME={ProfileVersion1.cfm?PropId=5039&marketId= 1&renttype=net&fomat=pdf&UserID=258&reporttitle=ProfileVersion1&orientation=portrait},SAVE FILENAME={258_ProfileVersion1_9_24_39.pdf}}},GATEWAYID={CreatePDF},GATEWAYTYPE={CFMLGatewa y}}.
The cause of this exception was that:
coldfusion.runtime.UndefinedVariableException: Variable CFEVENT is
undefined..
Please help me to solve this issue
Similar Messages
-
CFML gateway : java.lang.OutOfMemoryError
I though that CFML gateways were designed for long running
tasks, but my tests tends to show the opposite :
whatever I do, it always crash with a
java.lang.OutOfMemoryError
I made a mass emailing gateway, following the CDFJ article (
june 2005,
volume 7, issue 6 : the asynchronous CFML gateway)
that is to say :
- a classic cfm page that defines the needed struct
(arguments for the gateway cfc) then a call to the gateway.
- the gateway cfc is very basic : it makes a query to
retrieve email adresses from a database then loop over the query
and for each adress send an email.
I use cfoutput query + a cfmail for each email because i need
to make a bit of other things in the loop (every 100 email sent i
made another "update" query to keep an information of what email
were sent.
I have about 150,000 emails to send but plan to send more
(1,000,000. I'm not a spammer, all adresses are opted-in).
The first time it crashed around 25,000 emails.
I tried to maximize the JVM settings (maxperm, maxheap, ...
to 512MB then 1024MB), it then crashed around 55,000, but whatever
I do it still crashs before the end of the task. The server is a
dual xeon 3.0 ghz with 2 GB of RAM and is running Coldfusion 7.0.1
(updater 2) on windows 2003 std.
I also replace the cfmal tag by cffile tag (for each adress i
write then delete a small file, to simulate activity without really
sending tons of emails
... and remove the "every 100 loops update a
counter" query... it still crashs (but around 360,000 loops).
Just in case, I tried the cfsetting timeout in the cfc, the
timeout in the struct passed to the cfc... no effect.
So I'm a bit confused about the aibility to handle long
running tasks...
The exception.log files contains :
"Error","Thread-13","04/20/06","17:26:58",,"Error invoking
CFC for gateway emailblaster: null"
java.lang.OutOfMemoryError
And here is a part of the cfc code :obouillaud wrote:
> - Why not cleaning the email before it's insertion in
the database ? I already
> do it, but I want to be sure to avoid crashing the
sending process because
you can't crash the "sending process" w/bad email, it will
only NOT send those
emails.
> someone manualy (bad) changed an adress in the database,
or everything else
> that can lead to a bad formated adress...
you need procedures, etc. to manage that sort of thing. for
instance, if your db
has triggers, you can have it verify the email when/if
somebody messes w/it.
> - splitting into chunks... what a shame !!! the gateways
are designed for such
> tasks, that is to say long running queries. The
asynchronous process is made to
> avoid the "blank loading page" of these long tasks. Do
you mean I need to make
> a gateway that handle the whole process and that calls
for example every
> thousands email another gateway that send the emails ?!?
probably several way to handle this. here's one:
one asynch gateway, one CFC, pass in query conditions &
let it work (do the
query, send the mail). instead of one monster loop of 500k,
maybe 10 of 50k
would work better. it's all the same to the user/main app--it
hands off the
processing to the gateway & goes on to do other things.
you can easily call the
gateway 10x in the main app, since everything's happening in
the gateway it's
very fast as far as the user/main app is concerned.
i'm not sure what your UPDATE query is actually used for but
you could easily
hand-off parsing send logs, etc. to an asynch gateway (could
even be the same
one that's running the email, you can specify a different CFC
to use) to handle
that. or if you really wanted to get "fancy" have a look at
sean's concurrency
app:
http://cfopen.org/projects/concurrency
i've combined gateways before. for example, SMS & asynch
gateways work very well
together (cf can melt down SMS aggregators fairly easily). so
having more than 1
gateway handle a job's not a bad idea. -
Missing falshservices gateway in CF8
I recently upgraded my development CF from 7 to 8. I use IIS
as server, not the built in
Realizeing that CF7 was still there, after much testing of
sites on CF8, I uninstalled CF7. I had copied the CFIDE folder
because it was in the inetpub/wwwroot tree and was afraid it might
get lost. The uninstall did remove that CFIDE folder; but, I copied
it back.
Now I'm noticing that anything that relies on flash remoting
isn't working. Some direct flash swfs and getting data into some of
the flash forms (cfform).
I tried a fla directly that uses flash remoting and got the
message:
Error opening URL '
http://localhost/flashservices/gateway'
My remoting components are still there in flash, but
somewhere I lost something critical. But, not sure what!
Appreciate any help!
Thanks
KeithAdditionally, we tried both of these methods to no avail:
http://www.mac-connect.com/winfrommac.php
http://www.mac-connect.com/macfromwin.php
SMB doesn't work from MAC to PC. And on the PC, the MAC does not show up on as a network node as in the previous post above. -
Cfselect data binding with statically defined options
I am having some trouble getting statically defined options
to remain in my cfselects when I use binding in CF8
I have four cfselects: Continent, Country, State/Province,
County
The continent select is populated by a list in a database,
and each subsequent select is populated depending on the continent
value (your run-of-the-mill related select box model).
I have a form that allows a user to edit an existing record
that uses these select boxes. The form is populated with data from
that existing record - for example, a record in which
Continent=North America, Country=United States, State=Montana, and
County=Meagher
The problem is that when I define a static option based on
what's already in the database:
<cfselect name="continentSelect"
bind="cfc:CF_Classes.places.getContinents()" bindonload="true">
<option value="#
defined continent name#" selected="selected">
defined continent name</option>
</cfselect>
the static option is displayed only momentarily while the
query is running and then disappears completely from the box once
the box is populated. I have got the option to stay when I turn
"bindonload" off, but even then when I trigger the binding the
option disappears. I have been able to get it to stay when I use
the old method of defining a query to populate the box, but then I
lose the binding ability in subsequent boxes so that options I
don't want to show are displayed (i.e. something like
Continent=North America, Country=Japan).
Maybe there isn't a way around this, but there is an example
of this type of thing in the CFML reference for CF8. I haven't
tested it so I don't know if that one works or not. Am I missing
something?Hi,
There are a couple of ways you can do this. One is where the dropdown would change the presence of static text objects. The other would be where the dropdown would set the actual text within a textfield.
Sample here: https://acrobat.com/#d=k2tAeWMsKS0pEbhmWt33oA
Good luck,
Niall -
CF8 DirectoryWatcher Gateway Doesn't Run When I Overwrite a File
I've set up a Coldfusion Directory Event Gateway on my site (Win2K3 server, CF8 Ent). The DW monitors an FTP directory where my users upload a batch of 5 PDF files each week. The files are named file1.pdf, file2.pdf and so on. When my DW gateway sees an addition or a file change, it copies the file to a new location, reads the PDF's meta data and uses that to rename the file and then add an entry to a database table for that file (the table entry gets used to populate a PDF archive list on a different page). In general this all works with a few exceptions.
ISSUE 1: If I add a new file, the gateway sees it and calls my onAdd function (which actually just calls my onChange function). If I rename a file in that directory, the onChange event fires and my code runs. However, if I upload a new file1.pdf file which overwrites the old file1.pdf, nothing happens. The new file is truly different and has a new modification date. I read through the Java class and mod date is how the gateway determines a change. Now, so far am not actually FTPing a new file in, but rather just coping it in from my local machine to the server directory via a mapping.
I saw a solution for a similar issue which talked about setting up the onDelete event b/c the FTP will actually delete then add the file. Does this sound like a solution?
ISSUE 2: I had a lot of CFM files that needed to be put into the archive, so I converted those to PDFs. I then put all of them in my watch directory so my script would process them. To my surprise, the script would only load 11 files at a time. So after some tests to confirm the issue and the correct number of files, I then loaded my batch, 11 files at a time. Any ideas why this would happen?
My Specs again:
Windows 2003 Server
Coldfusion 8 Enterprise
In my config file:
checking my directory every minute (60000 milliseconds)
only checking for .pdf extension
Set an onAdd and onChange function call, but no onDelete
my onAdd function simply calls my onChange function, passing
in the CFEvent argument that it receivedWe had the same problem here, and I agree that it is disappointing that the DW doesn't consider that a new file. As far as a workaround, what I did was change the way our process dealt with incoming files entirely. I used to handle the files as they came in, relying on Dave Ferguson's tricks for getting around files that were still being written to or otherwise locked (thanks, Dave!). Now, instead of that, I only do one thing when a file is received: I rename it with a datestamp and write this to our db as the received filename so that the additional processes can be run on it. That way, when that same filename is used by our client again, which is every time, the DW picks it up again as a new file. I don't know if that helps or not, because it still means you lose the functionality that used to be inside the DW instead of a scheduled task, but at least you know when an actual new file is received, regardless of its name. You may even be able to put your functions inside the onChange or onDelete if you keep the reference to the original filename, then have those do your work after the file is renamed and/or moved. In our case, the DW also kept hanging every couple of days so we were missing very important files. I ended up just restarting the gateway through code as the last piece of the scheduled task that runs every 30 mins to process the files.
-
Socket event gateway error in CF8?
Having upgraded to CF8 with no code changes I am seeing a
socket event gateway accept an xml message line by line and not the
entire xml packet in one shot (each line is shown in the log
separately). Passing a simple sentence with a return in it also
becomes 2 events. This obviously causes problems, as the xml cannot
be recognized and processed when it comes in line by line. The xml
is coming from a daemon writen in Perl, and I can't immediately
make any changes to it, as these requests are also sent out to
other Perl systems, so any changes would have to be tested against
them as well.
I couldn't find anything online about this being a bug in
CF8, has anyone else seen it?Hi,
Remove this (And never put it in again)
EXCEPTION
when others then
raise_application_error(-20001,'Error sending email.Error: '||sqlerrm);
--Dbms_Put.Put_Line('Error sending email.Error: '||dbms_util.get_detailed_sqlerrm);This will tell you more about what is going on, such as giving you the location of the error.
But 20999, is a user defined exception, are you putting objects into system schema?
Regards
Peter -
CF8/JRun4 Cluster for Load Balancing
Does anyone have an example of how to set up a CF8/JRun4
cluster for load balancing?
I have three servers:
x004 - Linux - Apache2 (10.0.0.54,10.1.0.54)
x020 - Linux - JRun4/CF8 (10.0.0.70,10.1.0.70)
x021 - Linux - JRun4/CF8 (10.0.0.71,10.1.0.71)
Every server in our network has two network cards. One
network card is attached to 10.0.x.x which has a gateway to the
internet and runs at 100Mbps and is firewalled, and the other is
attached to 10.1.x.x which runs at 1Gbps and is internal with no
gateway. I'm trying to set it up so web traffic arrives on
10.0.0.54 into Apache and mod_jrun20 bootstraps a cluster named
STST using 10.1.0.54 which consists of STST_x020 coldfusion server
running on x020 and STST_x021 running on x021. I want the
communications between JRun4 on x020 and x021 to occur on the
10.1.x.x network and eventhough JRun and ColdFusion will only use
the 10.1.x.x network I still need the 10.0.x.x network card
attached for other purposes which require a gateway. I have
installed JRun4/CF8 about 10 times already and it seems I have no
control over what network JRun4 clusters on... sometimes it will
communicate on one, sometimes the other and without being able to
set which network is being used there always seems to be "network
error" on at least one of the two CF8 servers. I was able to get
everything working fine by disabling the network cards on the
10.0.x.x network and re-installing everything... but as soon as I
added the network cards back the whole thing was broken again.
How is this supposed to work? Most of the examples are either
no clustering or clustering on the same machine with Apache running
on the same box... I don't see any clustering across machines
examples.
How do I install a connector on a web server which doesn't
have JRun on it and get wsconfig to connect to a multi-machine
cluster when wsconfig only accepts a single IP address as a host
and the cluster is not listed?
How do I get JRun to bind to a specific network card?
Does this work if I choose a J2EE server other than JRun?
Any help anyone can provide is greatly appreciated. I'm
getting close to giving up which means staying on the non-clustered
environment and figuring out how we can deal with scalability by
switching to something else.The article at
http://www.adobe.com/go/1e8e9170
is specific to configuring two or more cluster nodes that reside on
separate networks, e.g. 10.0.1.0/24 and 10.0.2.0/24. (The article
doesn't state it, but you can only use unicast peers if your
cluster nodes host a single instance of JRun or multiple instances
of JRun in the same cluster domain. When performing unicast
discovery, JRun looks for all Jini groups and not just the cluster
group.)
Anyhow, that's not your problem. The simplest solution is you
haven't enabled the jrun.servlet.jrpp.JRunProxyService service. I'm
most familiar with the Windows version of JRun, but I'm assuming
the directory structure is similar across platforms. In
<jrun_root>/servers/<name>/SERVER-INF/jrun.xml, set the
deactivated attribute of the jrun.servlet.jrpp.JRunProxyService
service to false and restart JRun. You should now see JRun
listening on the appropriate port. (The default for the first
manually created instance is 51000.) You can limit the proxy
service to a single interface using the interface attribute.
If you have enabled the proxy service, verify your security
settings in <jrun_root>/lib/security.properties. It's usually
best to limit access to specific hosts. Comment out the
jrun.subnet.restriction parameter and set the jrun.trusted.hosts to
the IP address of your web server, e.g. 10.1.0.54.
Forcing all JRun processes/services to listen on a single
interface isn't difficult, but it does require modifying quite a
few configuration files by hand. If you need assistance with that,
I can elaborate.
Configuring the JRun module under Apache is pretty
straightforward. If you're not using virtual hosts, it's very
simple. If you are using virtual hosts, it's still simple, but your
JRun configuration can be virtual host-specific.
On your Apache server, you'll want to create a directory
structure for the JRun module. I'll assume
/opt/jrun/lib/wsconfig/1, but you can use anything you want. Once
the directory structure is created, extract the appropriate JRun
module from wsconfig.jar to the new directory. You're most likely
interested in the Apache 2.0 module,
wsconfig.jar/connectors/apache/intel-linux/prebuilt/mod_jrun20.so.
Let's assume you've extracted the module to
/opt/jrun/lib/wsconfig/1/mod_jrun20.so. Your Apache service account
should have read, write, and execute permissions on the
/opt/jrun/lib/wsconfig/1 directory.
The JRun module configuration is normally appended to your
current httpd.conf file by wsconfig. Here's a sample configuration:
LoadModule jrun_module
"/opt/jrun/lib/wsconfig/1/mod_jrun20.so"
<IfModule mod_jrun20.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ssl false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore
"/opt/jrun/lib/wsconfig/1/jrunserver.store"
JRunConfig Bootstrap 10.1.0.70:51000
#JRunConfig Errorurl <optionally redirect to this URL on
errors>
#JRunConfig ProxyRetryInterval 600
#JRunConfig ConnectTimeout 30
#JRunConfig RecvTimeout 30
#JRunConfig SendTimeout 30
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr
.cfswf
</IfModule>
You may also want to update your DirectoryIndex directive
with an appropriate index page, e.g. index.cfm.
After the first request to a page handled by the JRun module
is received, the module will query the boostrap server,
10.1.0.70:51000, for a list of cluster peers. If you've configured
your cluster correctly, a line similar to following will be written
to /opt/jrun/lib/wsconfig/1/jrunserver.store:
proxyservers=10.1.0.70:51000;10.1.0.71:51000
You can create/edit this file manually as well.
Unfortunately, the bootstrap option only accepts one server. If
your bootstrap server is down, the JRun module will use the values
in jrunserver.store directly, if the file exists.
Here's a complete list of JRun module options:
metrics *
debugger *
ssl *
verbose
traceflags
serverstore
bootstrap
errorurl
apialloc
ignoresuffixmap
proxyretryinterval
connecttimeout
recvtimeout
sendtimeout
sslcalist
Options flagged with an asterisk can only be configured at
the Apache server level. All other options can be configured at the
server level and/or the virtual host level. The usage of these
options is in the JRun documentation, and the JRun module source
code is included in wsconfig.jar. Keep in mind that versions of the
JRun module shipped prior to ColdFusion 8 were coded to assign the
connecttimeout and sendtimeout options to the socket connection
timeout. Whichever option appeared last in your configuration ended
up as the final value. This has been fixed in ColdFusion 8 and
presumably the next release of the JRun updater.
I think that's a good start. If you need more information or
can't find what you need in the JRun or ColdFusion documentation,
let me know.
If you're looking for resiliency, I highly recommend
expanding your configuration to include a second web server and a
hardware load-balancer (preferably one that supports redudancy via
multiple paths and devices, e.g. devices from Cisco, F5, or Foundry
Networks). Often, however, running Apache on the ColdFusion
server(s) provides adequate performance, and round-robin DNS
records coupled with the ability to update DNS quickly in the event
of a failure may be all you need for load-balancing and
failover. -
CF8 breaks IIS v6.0 on Win Server 2003...
If I install CF8 without the built-in web-server, I can't
even run the CF Admin page when it's done installing! So HOW
exactly am I supposed to get it to finish configuring itself?
If I install it with the built-in web-server, it will allow
me to run the CF Admin page -- but NOTHING ELSE. (edit: "
http://localhost:8500/administrator"
is the ONLY page that works.) Every page I try to browse to,
whether locally or remotely, shows HTTP 500 (Internal Server
Error). Uninstalling CF8 will fix the problem immediately, but
obviously that's not the solution I need here.
After installing CF8 with the built-in web-server, it
automatically ran the Admin page for the first time where it
supposedly configured IIS (but didn't). I also ran Programs ->
Adobe -> ColdFusion8 -> Web Server Configuration Tool. Added
IIS to it, all websites, with Cold Fusion Apps enabled. It *did* do
the propper .cfm, .cfc, .cfml, etc., mappings, but it did NOT
create the JRunScripts virtual directory. How do I create that
directory manually? Do I really need to create that directory at
all? What does that directory do? (I'm not actually going to run CF
apps on this server, I just need CF to allow Flex to access a MS
SQL database -- or at least, that's what I was told. So do I really
need the JRunScripts directory, anyway?)
And on the CF8 Admin -> Server Settings -> Mappings
page, there's no mapping to the main website. Only a /CFIDE mapping
that points to C:\ColdFusion8\wwwroot\CFIDE (which I can't change
or delete), and a /gateway mapping that points to
C:\ColdFusion8\gateway\cfc. Seems like there should be a / mapping
that points to C:\Inetpub\wwwroot, but creating one had no effect.
Any help is appreciated.When you install without the built-in web server - which is
how you should install if the machine is running IIS - is the
option to configure ColdFusion to work with all IIS sites? If not,
you should manually select that option. -
Problem installing CF8 on Windows 7 x64
Hello. I am trying to install ColdFusion 8.0.1 64 bit on the Windows 7 RC x64. I already had CF8 on Windows 7 beta 32 bit OS and it ran just fine. For some reason I can't seem to get CF installed. I'm guessing it's because of the fact that it's a 64 bit OS, but I don't understand why. The installation process works fine until I get to the step where I have to configure my web server. I am trying to install CF on an Apache server (which I have successfully done in the past). When I click on the Add button, the JRE window pops up and freezes. Nothing happens when I click on the Browse button to point to the configuration directory or the bin directory. It won't even respond when I try to cancel out of the window. Any ideas are welcome right now, because I'm out. I don't know what to try. Thanks.
You'll need to setup 2 things:
- in httpd.conf you'll need to add the config entries to load the jrun
connector module (extract mod_jrun20.so from wsconfig.jar)
LoadModule jrun_module "C:/jrun4/lib/wsconfig/2/mod_jrun20.so"
JRunConfig Serverstore "C:/jrun4/lib/wsconfig/2/jrunserver.store"
JRunConfig Bootstrap 127.0.0.1:51020
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
Alias /CFIDE/ "c:/jrun4/servers/cfusion/cfusion-ear/cfusion-war/CFIDE/"
- in jrun.xml enable the JrunProxyService and make sure it's the same
port as the one in httpd.conf
Bafta
Mack -
Extent to which IPv6 is supported in CF8/9/10?
The suits have indicated that our DMZ will be "fully IPv6-compliant" (their words, not mine) by early next calendar year. After asking a couple of questions, I believe they think that means that the servers in the DMZ will be running in a mode where all network addressing is using IPv6 and IPv4 will be disabled.
I'm trying to figure out what that means in terms of our CF servers and CF applications there. From looking at some of the CF docs and from experience, I know there is some support for IPv6 within at least CF8 and later, but I am also seeing indications that the support may not currently be complete.
Can someone who has been down this road or from within the Adobe CF team comment on the following:
1. Can anything within the CF Administrator where hostnames are used support IPv6 addresses in the same way it currently supports IPv4 addresses? I know for instance that IPv6 addresses work in specifying debugging IPs, but what about JDBC connections, mailserver connections, etc.?
2. Do all CFML tags and their CFSCRIPT equivalents completely support IPv6? For instance, does CFHTTP work if the URL is specified with an IPv6 address rather than a hostname?
3. Do all CFML functions support IPv6? A couple of examples would include IsValid("url", address-in-ipv6-format), IsValid("email", user@address-in-ipv6-format), the XML validation functions which issue http requests in order to retrieve schemas.
I've done a bit of checking, and at leas the preliminary indication I have right based on that testing is that IsValid("url", address) does not yet support it. All three of the following should be equivalent:
IsValid("url", "https://fastweb.inel.gov/")
IsValid("url", "https://204.134.140.60/")
IsValid("url", "https://[2002:CC86:8C3C:0:0:0:0:0/]")
Only the first two return an indication of validity, the third (and all other equivalent versions of the IPv6 address) indicates it is not valid, but it really should be.
At any rate, can anyone shed any further light on answers to those questions above or other IPv6-related areas within ColdFusion?
Thanks in advance.
/ronCould always just try it? I'd ignore the isValid() function, doesn't even work on email addresses; it's just a regex, nothing to do with networking support.
-
Coldfusion Socket Gateway in web application help
I've created a Java Socket Gateway in ColdFusion to talk to a 3rd party API.
User requests their credit balance by clicking a button.
On clicking the button, a socket is opened with the 3rd party server in CFML, it sends a gateway message (request for balance) and the template request ends. A listener CFC waits for a response, and receives data back 15 seconds later and deals with the results but in a different request.
I'm not sure how I give these results back to the user as it's not completed in the same request? Do I look at web sockets, node.js, CF web sockets or just poll with ajax?
I'm new to socket communication and the api I'm using and unsure of how to proceed, can anyone offer any advice or tips?
Cheers
ShaunI've created a Java Socket Gateway in ColdFusion to talk to a 3rd party API.
User requests their credit balance by clicking a button.
On clicking the button, a socket is opened with the 3rd party server in CFML, it sends a gateway message (request for balance) and the template request ends. A listener CFC waits for a response, and receives data back 15 seconds later and deals with the results but in a different request.
I'm not sure how I give these results back to the user as it's not completed in the same request? Do I look at web sockets, node.js, CF web sockets or just poll with ajax?
I'm new to socket communication and the api I'm using and unsure of how to proceed, can anyone offer any advice or tips?
Cheers
Shaun -
Multiple Apache Servers tied to CF8/JRUN?
I've got CF6 experience over J2EE, but now I'm trying to
deploy CF8 over
embedded JRUN 4.0 on an OS X Tiger Server (10.4.10) and
running into some
headaches. From what I can see in the JRUN 4 documentation I
need to enable
Proxy Service so that I can have multiple web hosts tied into
the same CF8
server, but I can't figure out how to do this. The CF8
documentation doesn't
talk about embedded JRUN very much. Is there an administrator
interface for
embedded JRUN or should I attempt to edit jrun.xml by hand?
Or am I totally on
the wrong track?
Any help would be appreciated.
What follows are the nitty-gritty details.
The JRun / CF8 server is running at 192.168.1.100 and
jrun.xml contains the
following snippet (the default);
<service class="jrun.servlet.jrpp.JRunProxyService"
name="ProxyService">
<attribute
name="activeHandlerThreads">50</attribute>
<attribute
name="minHandlerThreads">1</attribute>
<attribute
name="maxHandlerThreads">1000</attribute>
<attribute name="mapCheck">0</attribute>
<attribute
name="threadWaitTimeout">300</attribute>
<attribute name="backlog">500</attribute>
<attribute name="deactivated">false</attribute>
<attribute name="interface">*</attribute>
<attribute name="port">51800</attribute>
<attribute name="timeout">300</attribute>
<!-- set this to false for multi-hosted sites -->
<attribute
name="cacheRealPath">false</attribute>
<!--
<attribute
name="keyStore">{jrun.rootdir}/lib/keystore</attribute>
<attribute
name="keyStorePassword">changeit</attribute>
<attribute
name="trustStore">{jrun.rootdir}/lib/trustStore</attribute>
<attribute
name="socketFactoryName">jrun.servlet.jrpp.JRunProxySSLServerSocketFactory</attr
ibute>
-->
</service>
The Apache server running on the same machine
(192.168.1.100) contains the
following connection info in its httpd.conf file. This works
beautifully.
# JRun Settings
LoadModule jrun_module
/Applications/ColdFusion8/runtime/lib/wsconfig/1/mod_jrun.so
<IfModule mod_jrun.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ssl false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore
/Applications/ColdFusion8/runtime/lib/wsconfig/1/jrunserver.store
JRunConfig Bootstrap 127.0.0.1:51800
#JRunConfig Errorurl url <optionally redirect to this URL
on errors>
#JRunConfig ProxyRetryInterval 600 <number of seconds to
wait before
trying to reconnect to unreachable clustered server>
#JRunConfig ConnectTimeout 15 <number of seconds to wait
on a socket
connect to a jrun server>
#JRunConfig RecvTimeout 300 <number of seconds to wait on
a socket receive
to a jrun server>
#JRunConfig SendTimeout 15 <number of seconds to wait on
a socket send to
a jrun server>
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr
.cfswf
</IfModule>
Where I run into trouble is when I enable the following
configuration on a
second Apache server (at 192.168.1.102). If I enable the
following code I get
errors. [Yes, /Applications/Coldfusion8 is populated
properly, as far as I can
tell, but I don't want to launch JRUN / CF8 on this machine.]
# JRun Settings
LoadModule jrun_module
/Applications/ColdFusion8/runtime/lib/wsconfig/1/mod_jrun.so
<IfModule mod_jrun.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ignoresuffixmap false
JRunConfig Ssl false
JRunConfig Serverstore
/Applications/ColdFusion8/runtime/lib/wsconfig/1/jrunserver.store
JRunConfig Bootstrap 192.168.1.100:51800
#JRunConfig Errorurl url <optionally redirect to this URL
on errors>
#JRunConfig ProxyRetryInterval 600 <number of seconds to
wait before
trying to reconnect to unreachable clustered server>
#JRunConfig ConnectTimeout 15 <number of seconds to wait
on a socket
connect to a jrun server>
#JRunConfig RecvTimeout 300 <number of seconds to wait on
a socket receive
to a jrun server>
#JRunConfig SendTimeout 15 <number of seconds to wait on
a socket send to
a jrun server>
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr
.cfswf
</IfModule>
Here are the connection errors that I receive when the
Apache server at
192.168.1.102 fires up:
[Thu Aug 9 16:36:40 2007] [notice] jrApache[25761:61918]
255.255.255.255:0
connect failed[54]: 49 49 Can't assign requested address
[Thu Aug 9 16:36:40 2007] [notice] jrApache[25761:61918]
could not
initialize proxy for fe80:0:0:0:203:93ff:feab:9662%4:51800
[Thu Aug 9 16:36:40 2007] [notice] jrApache[25761:61918]
255.255.255.255:0
connect failed[54]: 49 49 Can't assign requested address
[Thu Aug 9 16:36:40 2007] [notice] jrApache[25761:61918]
could not
initialize proxy for fe80:0:0:0:203:93ff:fec0:7676%5:51800
---END---Hi:
I played with this stuff and I found that this will work, without the Location elements:
<IfModule mod_weblogic.c>
MatchExpression /app1 WebLogicHost=server1|WebLogicPort=7003
MatchExpression /app2 WebLogicHost=server2|WebLogicPort=7003
</IfModule>
Also this will work too, with no entries inside the IfModule element:
<Location /app1 >
SetHandler weblogic-handler
WebLogicHost server1
WebLogicPort 7003
</Location>
<Location /app2 >
SetHandler weblogic-handler
WebLogicHost server2
WebLogicPort 7003
</Location> -
CF8 Multiserver IIS6-Jrun Broken Images
Hello All
We have run into a problem with the multiserver install of
CF8 Enterprise Edition. I would appreciate any insight into it.
Server details:
Web Servers
IIS 6.0 on Windows 2003 Server
Use the JRun connector to communicate with CF servers (.cfm
.cfml .cfc .cfr mapped to jrun_iis6.dll)
CF 8 servers:
CF8.0.1 Enterprise edition; on windows 2003 server; 1 cluster
of 2 instances; running the proxy service on default ports (51000,
51002 and so on),
We want to use the reverse proxy for every type of file for
specific virtual directories on the Web server. This includes, .js,
.css, .gif, .jpg files.
Problem:
The coldfusion specific file formats are proxied to the CF
servers without a problem (since an IIS mapping exists for each of
them). However, for the static file formats it does not work
(broken images, missing .css files etc.)
We have observed that:
a) if there is no extension mapping on web server, IIS 6.0
sends a 404 message for the images on the page
b) if there is an extension mapping to the same jrun_iis6.dll
on the web server, we get a 503 error from the CF server
(Indicating no mapping on the CF server)
c) if in addition to (b), we introduce a url-pattern mapping
in web.xml, and associate it with CfmServlet, we start getting the
content of the image in a stream (Server response = 200 ) but with
incorrect content-type (it comes across as text/html). The images
still appear broken because the content-type is incorrect.
At this point, we are at a loss of what we are missing.
Has anyone run into this problem before... any pointers will
be much appreciated!
Regards
Kevdeepblue9999 wrote:
> We want to use the reverse proxy for every type of file
for specific virtual
> directories on the Web server. This includes, .js, .css,
.gif, .jpg files.
>
> Problem:
> The coldfusion specific file formats are proxied to the
CF servers without a
> problem (since an IIS mapping exists for each of them).
However, for the static
> file formats it does not work (broken images, missing
.css files etc.)
> c) if in addition to (b), we introduce a url-pattern
mapping in web.xml, and
> associate it with CfmServlet, we start getting the
content of the image in a
> stream (Server response = 200 ) but with incorrect
content-type (it comes
> across as text/html). The images still appear broken
because the content-type
> is incorrect.
Very close. You need to map the extensions to the
FileServlet, not the
CfmServlet. Then restart CF and you are in business. You can
even remove
the mappings in IIS, the mappings in web.xml will overrule
them anyway.
Jochem
Jochem van Dieten
Adobe Community Expert for ColdFusion -
Is a gateway what I need?
I am using CF8 in a windows environment.
I have a magentic stripe reader on the network at IP xxx.xx.xxx.174:1070
When a badge is scanned, I want that information to automatically log in my SQL database. I think a Socket Gateway is what I want, so it will listen to the address in question, and allow me to capture and store the information upon a scan, but I cant find much information on the net as to how to go about this. I have gone through the exanples but apparently I am not smart enough to "get it". Can anyone point me in the right direction?After further research, I find the following in the socket-gateway log:
Error attempting to listen on socket: java.net.socketException: socket closed
This is a strange one, because the socket is clearly open when I look at it through Windows administration tools.
I am using port 1070, and because it is over port 1000, I should not need any special permissions.
In the CF administrator it shows the gateway instance as running, but no in and out entries get registered.
I have stopped and restarted the gateway hundreds of times. No effect. Always the message shown above in the socket-gateway log.
Is there a bug that I need to know about?
CF8 on a windows environment.
Web searches turn up nothing, so apparently nobody is using the socket gateway. Even the Adobe documentation is barely existant. Not really sure why I am posting this here, since it is obvious that nobody reads, much less responds to, queries in the Gateway section! -
Hi
i had an application in which we are exporting data to excel and now we need to add save as PDF option for this data. I dont know how to do this in cf8 to create pdfs.
the pdf should get data from queries.
please help me how to create this pdf form<cfdocument>
Usage is described in the cfml reference manual. If you don't have one, the internet does.
Maybe you are looking for
-
Is there a way to link two apple accounts so they can share stuff in their itunes?
Stuff meaning music, apps because me and my mom started our accounts and started buying stuff with our own apple accounts. ( I have an ipod and she has an ipad) so we would like to buy some music for us to share. However she is paying with her accoun
-
How to get the name of the currently used display variant
Dear all, I found the user-exit EXIT_SAPLGRAP_001 for programming download authorization. With us no standard user is allowd to download data from R/3. With the user-exit it would be possible to allow certain downloads. one problem i solved already.
-
Why does my new Airport Extreme accept the old password for a guest user?
I have a new N/AC Airport Extreme Time Capsule that a friend can access only by using the password for an older "G" Airport base station from a previous visit. She can't get onto my current network using the correct/current passwrod. Anybody have any
-
Hi I am evaluating J2EE. I am wondering if it is possible to run Servlets on J2EE that works just like under servlets 2.2, i.e.: I can use: http://servername/servlet/HelloWorldServlet without add any servlet mappings into the web.xml file. Or is ther
-
Cannot download hotsync manager portion of Palm Desktop
Hi, I am unable to download hotsync manager for Palm desktop. The error message reads "the application config launch services has unexpectedly quit". I am however able to download it as another user so the problem must be something in my folder? I ha