Adobe 38043740 - ColdFusion Standard - Mac Development Manual page 1182

Developing applications
Hide thumbs Also See for 38043740 - ColdFusion Standard - Mac:
Table of Contents

Advertisement

DEVELOPING COLDFUSION 9 APPLICATIONS
Using Web Elements and External Objects
Ensuring correct threading
Improper threading can cause serious problems when using a COM object in ColdFusion. Make sure that the object
is thread-safe. An object is thread-safe if it can be called from many programming threads simultaneously, without
causing errors.
Visual Basic ActiveX DLLs are typically not thread-safe. If you use such a DLL in ColdFusion, you can make it thread-
safe by using the OLE/COM Object Viewer to change the threading model of the object to the Apartment model.
If you are planning to store a reference to the COM object in the Application, Session, or Server scope, do not use the
Apartment threading model. This threading model is intended to service only a single request. If your application
requires you to store the object in any of these scopes, keep the object in the Both threading model, and lock all code
that accesses the object, as described in
Change the threading model of a COM Object
1
Open the OLE/COM Object Viewer.
2
Select All Objects under Object Classes in the left pane.
Locate your COM object. The left pane lists the objects by name.
3
Select your object.
4
5
Select the Implementation tab in the right pane.
Select the Inproc Server tab, below the App ID field.
6
Select the Threading Model drop-down list and select Apartment or Both, as appropriate.
7
Using input and output arguments
COM object methods in arguments are passed by value. The COM object gets a copy of the variable value, so you can
specify a ColdFusion variable without surrounding it with quotation marks.
COM object out method arguments are passed by reference. The COM object modifies the contents of the variable on
the calling page, so the calling page can use the resulting value. To pass a variable by reference, surround the name of
an existing ColdFusion variable with quotation marks. If the argument is a numeric type, assign the variable a valid
number before you make the call. For example:
<cfset inStringArg="Hello Object">
<cfset outNumericArg=0>
<cfset result=myCOMObject.calculate(inStringArg, "outNumericArg")>
The string "Hello Object" is passed to the object's calculate method as an input argument. The method sets the value
of outNumericArg to a numeric value.
Understanding common COM-related error messages
The following table described some error messages you could encounter when using COM objects:
"Locking code with
cflock" on page 318.
Last updated 1/20/2012
1177

Advertisement

Table of Contents
loading

This manual is also suitable for:

Coldfusion 9

Table of Contents