|
CFML event gateway SendGatewayMessage data parameter
The ColdFusion CFML gateway type enables you to invoke
CFC methods asynchronously. The structure that you use in the SendGatewayMessage function data parameter
can include two types of fields:
Any number of fields can contain arbitrary contents for
use in by the CFC.
Several optional fields can configure how the gateway delivers
the information to the CFC.
The CFML gateway looks for the
following optional fields, and, if they exist, uses them to determine
how it delivers the message. Do not use these field names for data
that you send to your CFC method.
Field
|
Use
|
cfcpath
|
Overrides the CFC path specified in the
ColdFusion Administrator. This field lets you use a single gateway
configuration in the ColdFusion Administrator multiple CFCs. This
field sets the CFEvent object CFCPath variable.
|
method
|
Specifies the name of the method to invoke
in the CFC. The default method is onIncomingMessage.
This field lets you use a single gateway configuration in the ColdFusion
Administrator for a CFC that has several methods. This field sets
the CFEvent object CFCMethod variable.
|
originatorID
|
Sets the originatorID field of the CFEvent
object that ColdFusion delivers to the CFC. The default value is
CFMLGateway.
|
timeout
|
Sets the time-out, in seconds, during which
the listener CFC must process the event request and return before ColdFusion
gateway services terminates the request. The default value is the
Timeout Request value set on the Server Settings page in the ColdFusion
Administrator. Set this value if a request might validly take longer
to process than the default time-out; for example, if the request
involves a long processing time. This field sets the CFEvent object
CFCTimeout variable.
|
ExampleThe
following example consists of a CFML page that sends a message to
a logevent method in the file logger.CFC. The CFML page specifies
the CFC and method to call, and sets the OriginatorID.
<h3>Sending an event using a generic CFML event gateway and specifying the CFC and method.</h3>
<cfscript>
status = False;
props = structNew();
props.cfcpath="C:\CFusionMX7\gateway\cfc\MyCFCs\logger.cfc";
props.method="logEvent";
props.OriginatorID=CGI.SCRIPT_NAME;
props.Message="Replace me with a variable with data to log";
props.file="GenericCFCtest";
props.type="warning";
status = SendGatewayMessage("DefaultCFC", props);
if (status IS True)
WriteOutput('Event Message "#props.Message#" has been sent.');
</cfscript>
The CFC method uses the OriginatorID
and the message, file, and type fields of the CFEvent parameter’s
data field to specify the log file and message.
<cfcomponent>
<cffunction name="logEvent" output="no">
<cfargument name="CFEvent" type="struct" required="yes">
<cfscript>
if (NOT IsDefined("CFEvent.Data.file")) {
CFEvent.Data.file="defaultEventLog"; }
if (NOT IsDefined("CFEvent.Data.type")) {
CFEvent.Data.type="information"; }
</cfscript>
<cflog text="Message from #CFEvent.originatorID#: #CFEvent.Data.message#"
file="#CFEvent.data.file#" type="#CFEvent.Data.type#" >
</cffunction>
</cfcomponent>
|