CFC-Skeletons Question
I have a question about the cfc-skeletons that are created as
web service stubs for publishing web services via ColdFusion.
What determines the casing of those filenames and of those
containing folders? Does it use the actual filename of the CFC
file, the displayname attribute in the CFCOMPONENT tag for the CFC,
the casing of the URL for the WSDL, or is it using the casing that
references it in code through other CFCs?
What effect does restarting the CF app service have on those
cfc-skeletons?
The reason why I ask is that we've encountered some problems
where our web services built from CFCs are getting errors when:
1. The CF service is restarted
2. The URLs for the WSDLs are referenced differently as it
pertains to case, e.g "/cfComponents" vs. "/cfComPonents"
3. Any code within the CFC references other CFCs and the
casing is different or inconsistent throughout the CFC. e.g. some
code might be instantiating another CFC as "cfComponents.Login" and
other parts of the code within the same CFC might be instantiating
that CFC as "cfComPonents.login".
Also, I know that the cfc-skeleton structure that is
generated is different in CFMX 6 than in CF7. Is the logic that
auto-generates the skeleton in CFMX 6 the same as CF7?
Thanks in advance.
Rick...
It is up to you where you put your components and where you
put your custom tags. The standard way, as I know it, at least, is
to create a mapping for your cfc directory on the
Mappings page of the Coldfusion Administrator and to
register the path to your custom tag directory on the
Extensions/Custom Tag Paths page. In answer to your first
question, you will also need to create a mapping for a custom tag
directory if you intend to call tags using the template-attribute
of cfmodule.
Coldfusion considers the directory-path that you register on
the
Extensions/Custom Tag Paths page an absolute path. That is
what enables you to call a tag directly by name on any page of your
application, for example,
<cf_myCustomTag>.
One consequence is, if you stored a component myComp.cfc in
such a directory, you could instantiate it on any page simply by
running
<cfset myObj = createobject("component","myComp")>
However, this doesn't offer anything a mapping wouldn't. So,
in answer to the second question, I don't think one should use a
custom tag path for components. Mixing one's custom tags with one's
components only produces an oil-plus-water structure.
Similar Messages
-
CFC's - Question about coding guidelines
I have a question about the following section in the
CF
Coding guidelines
quote:
{cfmxroot}
---wwwroot/ » web-accessible .cfm pages and .cfc Web
Services
---extensions/
--------components/ » tree for .cfc files
--------customtags/ » tree for .cfm custom tags
--------includes/ » tree for include files
---config/ » tree for configuration files
This implies that we have two Custom Tag Paths set up in the
CFMX Administrator:
{cfmxroot}/extensions/components/
{cfmxroot}/extensions/customtags/
We also have mappings for the root of the includes tree (for
cfinclude) and the custom tags tree (for cfimport):
/cfinclude » {cfmxroot}/extensions/includes/
/customtags » {cfmxroot}/extensions/customtags/
1. Why would you want to add both a custom tag path
AND a mapping for " {cfmxroot}/extensions/customtags/"?
2. The guidelines seems to imply you should use a custom tag
path for components, instead of a mapping. If the "components"
directory is already outside the webroot, then adding a CF mapping
shouldn't make it web accessible, right? So is there any benefit to
using a custom tag path versus a mapping?It is up to you where you put your components and where you
put your custom tags. The standard way, as I know it, at least, is
to create a mapping for your cfc directory on the
Mappings page of the Coldfusion Administrator and to
register the path to your custom tag directory on the
Extensions/Custom Tag Paths page. In answer to your first
question, you will also need to create a mapping for a custom tag
directory if you intend to call tags using the template-attribute
of cfmodule.
Coldfusion considers the directory-path that you register on
the
Extensions/Custom Tag Paths page an absolute path. That is
what enables you to call a tag directly by name on any page of your
application, for example,
<cf_myCustomTag>.
One consequence is, if you stored a component myComp.cfc in
such a directory, you could instantiate it on any page simply by
running
<cfset myObj = createobject("component","myComp")>
However, this doesn't offer anything a mapping wouldn't. So,
in answer to the second question, I don't think one should use a
custom tag path for components. Mixing one's custom tags with one's
components only produces an oil-plus-water structure. -
Another CFInput and CFC Binding question.
I have been away from CF since version 5. Now, I have a need to start back up
on CF, but at version 9. I am kind of liking these cfc's.
Here is what I am having trouble with:
I have a cfform(html) that has a handful of elements in it. The first element is a cfselect which is bound to cfc.getClientList(Done this way to allow the drop down to be reusable). This piece of the puzzle works just fine. What I am trying to do from this is when a user selects a client from the dropdown, the remaining five elements are bound to another function called getClientDetail which has a returntype of query. I want to be able to bind the 5 columns returned in my query to the 5 cfinputs below my cfselect. Any thoughts on this would be helpful as I have tried almost everything I can think of to make this work.Copy the following 2 files into the same directory under your web root. The comments are self-explanatory.
selectEmployee.cfm
<!--- The cfajaxproxy tag creates a client-side proxy for the Employee CFC.
View the generated page source to see the resulting JavaScript.
The Employee CFC is in the same directory as this page. --->
<cfajaxproxy cfc="Employee" jsclassname="emp">
<html>
<head>
<script type="text/javascript">
/* Asynchronous call to get the employee details.
The function is called when the user selects an employee. */
var getEmployeeDetails = function(id){
var e = new emp();
e.setCallbackHandler(populateEmployeeDetails);
e.setErrorHandler(myErrorHandler);
/* Pass the employee name to the getEmployees CFC function. */
e.getEmployeeDetails(id);
/* Callback function: sets the results of getEmployeeDetails into input fields */
var populateEmployeeDetails = function(employee)
var first_name = employee.DATA[0][0];
var email_name = employee.DATA[0][1];
var department = employee.DATA[0][2];
var phone = employee.DATA[0][3];
var location = employee.DATA[0][4];
document.empForm.fname.value = first_name;
document.empForm.email.value = email_name;
document.empForm.dept.value = department;
document.empForm.tel.value = phone;
document.empForm.loc.value = location;
/* Error handler */
var myErrorHandler = function(statusCode, statusMsg)
/* blank the field entries*/
document.empForm.fname.value = '';
document.empForm.email.value = '';
document.empForm.dept.value = '';
document.empForm.tel.value = '';
document.empForm.loc.value = '';
alert('Status: ' + statusCode + '. ' + statusMsg);
</script>
</head>
<body>
<cfform name="empForm">
Employee: <cfselect value="emp_id" display="name" name="employee" bind="cfc:Employee.getEmployee()" bindonload="true" onChange="getEmployeeDetails(this.value)">
</cfselect><br>
First name: <cfinput name="fname"><br>
E-mail name: <cfinput name="email"><br>
Department: <cfinput name="dept"><br>
Telephone: <cfinput name="tel"><br>
Location: <cfinput name="loc"><br>
<cfinput name="sbmt" type="submit" value="send" onclick="if(employee.value==''){alert('You must select an employee');return false;}">
</cfform>
</body>
</html>
Employee.cfc
<cfcomponent output="false">
<cffunction name="getEmployee" access="remote" output="false" returntype="any">
<cfset var getAllEmployees = queryNew("","")>
<cfset var arr = arrayNew(2)>
<cfquery name = "getAllEmployees" dataSource = "cfdocexamples">
SELECT Emp_ID, FirstName || ' ' || LastName as Name
FROM Employees
</cfquery>
<cfset arr[1][1]="">
<cfset arr[1][2]="Select employee">
<cfloop query="GetAllEmployees">
<cfset arr[currentrow+1][1]=emp_id>
<cfset arr[currentrow+1][2]=name>
</cfloop>
<!--- Alternative, if you require no "Select employee" option --->
<!--- <cfloop query="GetAllEmployees">
<cfset arr[currentrow][1]=emp_id>
<cfset arr[currentrow][2]=name>
</cfloop> --->
<cfreturn arr>
</cffunction>
<cffunction name="getEmployeeDetails" access="remote" output="false" returntype="query">
<cfargument name="employee_id">
<cfset var employeeDetails = queryNew("","")>
<cfset var emp_id = arguments.employee_id>
<cfif isNumeric(emp_id)>
<cfquery name = "employeeDetails" dataSource = "cfdocexamples">
SELECT firstname, email as email_name, department, phone, location
FROM Employees
WHERE emp_id = <cfqueryparam cfsqltype="cf_sql_integer" value="#emp_id#">
</cfquery>
</cfif>
<!--- Will activate error-handler in the caller --->
<cfif NOT isNumeric(emp_id) or employeeDetails.recordcount EQ 0>
<cfthrow message="You selected no employee.">
</cfif>
<cfreturn employeeDetails>
</cffunction>
</cfcomponent> -
http://66.219.52.129/mydata.html
The above link is a dump of a struct passed to my CFC
function from Flex Object . [flex object is made up of many form
item strings and one arraycollection called outdata] . But, this is
not a Flex side question for me. It is a CFC-side question.
<cfargument name="mydata" type="Struct"
required="true"/>
How do I loop through the outdata in mydata? I need to loop
through each subscribers name and email and insert their name and
email into the subscribers table in the database. Not sure of
syntax of the looping to reference the outdata data?
I played with cfloop collection ="mydata" and cfscript for-in
loops, but I keep getting complex data errors. Obviously, I don't
understand how to loop through complex data structs.
If you could help, I'd be grateful.
Don KerrI believe you're looking for something like this. The key is
to remember
that s.outdata is an array, so you're looping through an
array, not a
collection. that's why the loop through the collection didn't
work.
<cfloop from="1" to="#ArrayLen(mydata.outdata)#"
index="i">
<cfoutput>
#mydata.outdata
.name#:
#mydata.outdata.email#<br>
</cfoutput>
</cfloop>
Good luck.
Marc Esher
"dkerr" <[email protected]> wrote in message
news:f9o55v$cp6$[email protected]..
>
http://66.219.52.129/mydata.html
>
> The above link is a dump of a struct passed to my CFC
function from Flex
> Object . [flex object is made up of many form item
strings and one
> arraycollection called outdata] . But, this is not a
Flex side question
> for
> me. It is a CFC-side question.
>
> <cfargument name="mydata" type="Struct"
required="true"/>
>
> How do I loop through the outdata in mydata? I need to
loop through each
> subscribers name and email and insert their name and
email into the
> subscribers
> table in the database. Not sure of syntax of the looping
to reference the
> outdata data?
>
> I played with cfloop collection ="mydata" and cfscript
for-in loops, but
> I
> keep getting complex data errors. Obviously, I don't
understand how to
> loop
> through complex data structs.
>
> If you could help, I'd be grateful.
>
> Don Kerr
>
>
>
> -
CFINVOKE syntax causing error - STUB OBJECTS??
When I run the code below I get this error :
"Could not generate stub objects for web service invocation.
Name:
http://app.campaignmonitor.com/api/api.asmx?WSDL.
WSDL:
http://app.campaignmonitor.com/api/api.asmx?WSDL.
org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file
name:
C:\CFusionMX7\stubs\WS1938286156\com\campaignmonitor\app\api\SubscriberUnsubscribe.java.
Hint: you may have mapped two namespaces with elements of the same
name to the same package name. "
I
have run other simple cfinvoke tags - like to get weather
for a zipcode - without error... what does this error mean & is
the problem on my hosts server, in my code or on the webservice
server?
Thanks!!> Well, I answered those questions already, I can't post
the code, but the error
> is clearly defined in my post, as is my OS.
Talking like that to someone who's trying to help you is not
going to win
you any friends. And probably very little help.
> I dont understand why I get that error. I can view the
WSDL file just fine,
> but always get this error.
I have sometimes found this to happen when I have executed a
WS once, and
then changed some of its input/output data types. I'm not
entirely sure
what's going on, but deleting any files created in (I think)
WEB-INF\cfc-skeletons seemed to allow it to regenerate the
stub files.
I would do what BSterner suggests... create another very
simple WS (one
that takes a string arg, and returns a boolean, or
something), and try
that: just to test if you can get ANY WSs working.
I have found that CF struggles with queries as datatypes in
WSs, I guess
because it's not a supported datatype for WSs in general,
being specific to
CF. I have not really looked at this since 6.1, though (I'm
not really a
developer any more, so don't get to keep up to date with this
stuff).
Adam -
HELP -- Slow and sometime unresponsive CF Server
From 2 weeks to date we are having problems with our CF Server. Especifically in one site but affect all the CF webserver. The problem is that the CF server is very slow and unresponsive some times and suddenly is normal again. Sometimes the server take a lot of time to load the index.cfm of the site in some sesion but the rarerly is that at the sametime other users load very fast the index. I don't know why. I debbuged and where it take a lot of time to load is in the application.cfm and is where the session is create. We have othe web apps in our intranet where have session too, they don´t take a lot of time of load the index (index and application.cfm).
Any recomendations?
regards!
This is the last snapshot of unresponsive server
Snapshot generated on : Fri Aug 19 12:13:27 CDT 2011 Caused by : Unresponsive Server Alert
Profiling : Enabled
Memory Tracking : Enabled
8 or more threads are busy for more than 60 seconds.
*Total Running requests - 12
*Total Queued requests - 2
Template Running requests - 7
Template Queued requests - 0
Flash Remoting Running requests - 0
Flash Remoting Queued requests - 0
CFC method Running requests - 0
CFC method Queued requests - 0
Web Service Running requests - 5
Web Service Queued requests - 2
JVM Memory Stats
Free Memory : 208656768 bytes
Used Memory : 214836864 bytes
Server Scope Memory Used - 3192 bytes
[Variable Type : Variable Name : Size]
STRUCT : COLDFUSION : 2992 bytes
STRUCT : OS : 200 bytes
Application Scope Memory Used - 264 bytes
[Application Name : Memory Used]
: 0 bytes
[Variable Type : Variable Name : Size]
C:\ColdFusion8\wwwroot\WEB-INF\cfc-skeletons : coldfusion.xml.rpc.CFCServlet.outputdir : 128 bytes
C:\ColdFusion8\wwwroot\WEB-INF\cfclasses : coldfusion.compiler.outputDir : 120 bytes
: applicationname : 40 bytes
cfadmin : 56 bytes
[Variable Type : Variable Name : Size]
cfadmin : applicationname : 56 bytes
MiComimsa : 56 bytes
[Variable Type : Variable Name : Size]
xxx : emailpersonarh : 80 bytes
Portal_Prestacion : datasourcemicomimsa : 72 bytes
MiComimsa : applicationname : 56 bytes
Calidad : 56 bytes
[Variable Type : Variable Name : Size]
Calidad : applicationname : 56 bytes
MailCheck : 56 bytes
[Variable Type : Variable Name : Size]
MailCheck : applicationname : 56 bytes
bv : 40 bytes
[Variable Type : Variable Name : Size]
bv : applicationname : 40 bytes
Session Scope Memory Used - 18960 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620834_53879880 : MiComimsa : 976 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 592 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620834&CFTOKEN=53879880 : urltoken : 96 bytes
MICOMIMSA_620834_53879880 : sessionid : 88 bytes
53879880 : cftoken : 56 bytes
620834 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620827_80747367 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620827&CFTOKEN=80747367 : urltoken : 96 bytes
MICOMIMSA_620827_80747367 : sessionid : 88 bytes
80747367 : cftoken : 56 bytes
620827 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620803_58559093 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620803&CFTOKEN=58559093 : urltoken : 96 bytes
MICOMIMSA_620803_58559093 : sessionid : 88 bytes
58559093 : cftoken : 56 bytes
620803 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620824_83583802 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620824&CFTOKEN=83583802 : urltoken : 96 bytes
MICOMIMSA_620824_83583802 : sessionid : 88 bytes
83583802 : cftoken : 56 bytes
620824 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620800_30123461 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620800&CFTOKEN=30123461 : urltoken : 96 bytes
MICOMIMSA_620800_30123461 : sessionid : 88 bytes
30123461 : cftoken : 56 bytes
620800 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620823_54237891 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620823&CFTOKEN=54237891 : urltoken : 96 bytes
MICOMIMSA_620823_54237891 : sessionid : 88 bytes
54237891 : cftoken : 56 bytes
620823 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620813_39640746 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620813&CFTOKEN=39640746 : urltoken : 96 bytes
MICOMIMSA_620813_39640746 : sessionid : 88 bytes
39640746 : cftoken : 56 bytes
620813 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620819_21112367 : MiComimsa : 1040 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 656 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620819&CFTOKEN=21112367 : urltoken : 96 bytes
MICOMIMSA_620819_21112367 : sessionid : 88 bytes
21112367 : cftoken : 56 bytes
620819 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620197_32596268 : MiComimsa : 984 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 600 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620197&CFTOKEN=32596268 : urltoken : 96 bytes
MICOMIMSA_620197_32596268 : sessionid : 88 bytes
32596268 : cftoken : 56 bytes
620197 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620836_27586780 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620836&CFTOKEN=27586780 : urltoken : 96 bytes
MICOMIMSA_620836_27586780 : sessionid : 88 bytes
27586780 : cftoken : 56 bytes
620836 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620793_10115109 : MiComimsa : 632 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 616 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620793&CFTOKEN=10115109 : urltoken : 96 bytes
MICOMIMSA_620793_10115109 : sessionid : 88 bytes
10115109 : cftoken : 56 bytes
620793 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620815_85048906 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620815&CFTOKEN=85048906 : urltoken : 96 bytes
MICOMIMSA_620815_85048906 : sessionid : 88 bytes
85048906 : cftoken : 56 bytes
620815 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620814_69065671 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620814&CFTOKEN=69065671 : urltoken : 96 bytes
MICOMIMSA_620814_69065671 : sessionid : 88 bytes
69065671 : cftoken : 56 bytes
620814 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620311_98418593 : MiComimsa : 984 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 600 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620311&CFTOKEN=98418593 : urltoken : 96 bytes
MICOMIMSA_620311_98418593 : sessionid : 88 bytes
98418593 : cftoken : 56 bytes
620311 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620840_57833497 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620840&CFTOKEN=57833497 : urltoken : 96 bytes
MICOMIMSA_620840_57833497 : sessionid : 88 bytes
57833497 : cftoken : 56 bytes
620840 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620801_48226812 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620801&CFTOKEN=48226812 : urltoken : 96 bytes
MICOMIMSA_620801_48226812 : sessionid : 88 bytes
48226812 : cftoken : 56 bytes
620801 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620831_82072476 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620831&CFTOKEN=82072476 : urltoken : 96 bytes
MICOMIMSA_620831_82072476 : sessionid : 88 bytes
82072476 : cftoken : 56 bytes
620831 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620807_99373155 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620807&CFTOKEN=99373155 : urltoken : 96 bytes
MICOMIMSA_620807_99373155 : sessionid : 88 bytes
99373155 : cftoken : 56 bytes
620807 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620805_76851467 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620805&CFTOKEN=76851467 : urltoken : 96 bytes
MICOMIMSA_620805_76851467 : sessionid : 88 bytes
76851467 : cftoken : 56 bytes
620805 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
Calidad_620760_76846444 : Calidad : 624 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 296 bytes
CFID=620760&CFTOKEN=76846444 : urltoken : 96 bytes
CALIDAD_620760_76846444 : sessionid : 88 bytes
76846444 : cftoken : 56 bytes
620760 : cfid : 48 bytes
on : winpopup : 40 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620830_50140928 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620830&CFTOKEN=50140928 : urltoken : 96 bytes
MICOMIMSA_620830_50140928 : sessionid : 88 bytes
50140928 : cftoken : 56 bytes
620830 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620810_94946605 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620810&CFTOKEN=94946605 : urltoken : 96 bytes
MICOMIMSA_620810_94946605 : sessionid : 88 bytes
94946605 : cftoken : 56 bytes
620810 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620806_87405821 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620806&CFTOKEN=87405821 : urltoken : 96 bytes
MICOMIMSA_620806_87405821 : sessionid : 88 bytes
87405821 : cftoken : 56 bytes
620806 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620822_90511878 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620822&CFTOKEN=90511878 : urltoken : 96 bytes
MICOMIMSA_620822_90511878 : sessionid : 88 bytes
90511878 : cftoken : 56 bytes
620822 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620804_93123588 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620804&CFTOKEN=93123588 : urltoken : 96 bytes
MICOMIMSA_620804_93123588 : sessionid : 88 bytes
93123588 : cftoken : 56 bytes
620804 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620764_18211345 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620764&CFTOKEN=18211345 : urltoken : 96 bytes
MICOMIMSA_620764_18211345 : sessionid : 88 bytes
18211345 : cftoken : 56 bytes
620764 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
bv_620833_58599060 : bv : 504 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 232 bytes
CFID=620833&CFTOKEN=58599060 : urltoken : 96 bytes
BV_620833_58599060 : sessionid : 72 bytes
58599060 : cftoken : 56 bytes
620833 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620818_16094570 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620818&CFTOKEN=16094570 : urltoken : 96 bytes
MICOMIMSA_620818_16094570 : sessionid : 88 bytes
16094570 : cftoken : 56 bytes
620818 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620811_50303269 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620811&CFTOKEN=50303269 : urltoken : 96 bytes
MICOMIMSA_620811_50303269 : sessionid : 88 bytes
50303269 : cftoken : 56 bytes
620811 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620817_68843193 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620817&CFTOKEN=68843193 : urltoken : 96 bytes
MICOMIMSA_620817_68843193 : sessionid : 88 bytes
68843193 : cftoken : 56 bytes
620817 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620835_82909315 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620835&CFTOKEN=82909315 : urltoken : 96 bytes
MICOMIMSA_620835_82909315 : sessionid : 88 bytes
82909315 : cftoken : 56 bytes
620835 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620837_48954912 : MiComimsa : 1008 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 624 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620837&CFTOKEN=48954912 : urltoken : 96 bytes
MICOMIMSA_620837_48954912 : sessionid : 88 bytes
48954912 : cftoken : 56 bytes
620837 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620826_45755482 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620826&CFTOKEN=45755482 : urltoken : 96 bytes
MICOMIMSA_620826_45755482 : sessionid : 88 bytes
45755482 : cftoken : 56 bytes
620826 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620795_28314251 : MiComimsa : 1136 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 592 bytes
ARRAY : perfiles : 352 bytes
STRUCT : usuario : 200 bytes
CFID=620795&CFTOKEN=28314251 : urltoken : 96 bytes
MICOMIMSA_620795_28314251 : sessionid : 88 bytes
28314251 : cftoken : 56 bytes
620795 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620829_95927183 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620829&CFTOKEN=95927183 : urltoken : 96 bytes
MICOMIMSA_620829_95927183 : sessionid : 88 bytes
95927183 : cftoken : 56 bytes
620829 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620820_39067055 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620820&CFTOKEN=39067055 : urltoken : 96 bytes
MICOMIMSA_620820_39067055 : sessionid : 88 bytes
39067055 : cftoken : 56 bytes
620820 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620839_71524632 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620839&CFTOKEN=71524632 : urltoken : 96 bytes
MICOMIMSA_620839_71524632 : sessionid : 88 bytes
71524632 : cftoken : 56 bytes
620839 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620809_48255137 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620809&CFTOKEN=48255137 : urltoken : 96 bytes
MICOMIMSA_620809_48255137 : sessionid : 88 bytes
48255137 : cftoken : 56 bytes
620809 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620802_32861440 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620802&CFTOKEN=32861440 : urltoken : 96 bytes
MICOMIMSA_620802_32861440 : sessionid : 88 bytes
32861440 : cftoken : 56 bytes
620802 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620808_87629440 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620808&CFTOKEN=87629440 : urltoken : 96 bytes
MICOMIMSA_620808_87629440 : sessionid : 88 bytes
87629440 : cftoken : 56 bytes
620808 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620838_28711131 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620838&CFTOKEN=28711131 : urltoken : 96 bytes
MICOMIMSA_620838_28711131 : sessionid : 88 bytes
28711131 : cftoken : 56 bytes
620838 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620828_92134794 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620828&CFTOKEN=92134794 : urltoken : 96 bytes
MICOMIMSA_620828_92134794 : sessionid : 88 bytes
92134794 : cftoken : 56 bytes
620828 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620825_76366611 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620825&CFTOKEN=76366611 : urltoken : 96 bytes
MICOMIMSA_620825_76366611 : sessionid : 88 bytes
76366611 : cftoken : 56 bytes
620825 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620821_75994248 : MiComimsa : 992 bytes
[Variable Type : Variable Name : Size]
STRUCT : auth : 608 bytes
STRUCT : usuario : 152 bytes
ARRAY : perfiles : 152 bytes
CFID=620821&CFTOKEN=75994248 : urltoken : 96 bytes
MICOMIMSA_620821_75994248 : sessionid : 88 bytes
75994248 : cftoken : 56 bytes
620821 : cfid : 48 bytes
[Session Id : Application Name :Session Size]
MiComimsa_620816_44610515 : MiComimsa : 288 bytes
[Variable Type : Variable Name : Size]
CFID=620816&CFTOKEN=44610515 : urltoken : 96 bytes
MICOMIMSA_620816_44610515 : sessionid : 88 bytes
44610515 : cftoken : 56 bytes
620816 : cfid : 48 bytes
Throttle Stats [Throttle Queue Size : Throttle Memory Used]
0 : 0.0 megabytes
Query Cache Stats -
[Hit Ratio : Size : Count]
0.0 : 0 bytes : 0
Cached Queries -
[Query Name : DSN : Size : TIme Executed : Time Taken : Line No : Function Name : Template Path]
DB Pool Stats -
[DSN :Open Conn Count : Total Conn Count : Max Con Count : Avg Open Conn Count : Avg Total Conn Count]
extensiones : 0 : 0 : Unlimited : 0 : 0
curriculumtest : 0 : 0 : Unlimited : 0 : 0
Test_MiComimsa : 0 : 0 : Unlimited : 0 : 0
SATDSN : 0 : 0 : Unlimited : 0 : 0
arrendamiento : 0 : 0 : Unlimited : 0 : 0
carlog : 0 : 0 : Unlimited : 0 : 0
laboratorios : 0 : 0 : Unlimited : 0 : 0
iso9000 : 0 : 0 : Unlimited : 0 : 0
sca : 0 : 0 : Unlimited : 0 : 0
cfcodeexplorer : 0 : 0 : Unlimited : 0 : 0
CMIDocumentos : 5 : 6 : Unlimited : 0 : 2
firmadocs : 0 : 0 : Unlimited : 0 : 0
CurriculumsPITT : 0 : 0 : Unlimited : 0 : 0
PORTALPLANEACION : 0 : 0 : Unlimited : 0 : 0
PortalRH : 0 : 6 : Unlimited : 0 : 4
FoodMart 2000 : 0 : 0 : Unlimited : 0 : 0
sig_contabilidad : 0 : 1 : Unlimited : 0 : 0
Bitacora_AJ : 0 : 0 : Unlimited : 0 : 0
cfdocexamples : 0 : 0 : Unlimited : 0 : 0
pnt : 0 : 0 : Unlimited : 0 : 0
encuestaPITT : 0 : 0 : Unlimited : 0 : 0
AgendaPresidencial : 0 : 0 : Unlimited : 0 : 0
CodigoConducta-quiz : 0 : 0 : Unlimited : 0 : 0
vinculacion : 0 : 0 : Unlimited : 0 : 0
Dir2 : 0 : 0 : Unlimited : 0 : 0
SIG_Test : 0 : 0 : Unlimited : 0 : 0
filemanager-gat : 0 : 0 : Unlimited : 0 : 0
filiacion : 0 : 0 : Unlimited : 0 : 0
BSC : 0 : 0 : Unlimited : 0 : 0
noticias : 0 : 0 : Unlimited : 0 : 0
sigel : 0 : 0 : Unlimited : 0 : 0
SIID_test : 0 : 0 : Unlimited : 0 : 0
dimm : 0 : 0 : Unlimited : 0 : 0
Portal_auditores : 0 : 0 : Unlimited : 0 : 0
Xtreme Sample Database : 0 : 0 : Unlimited : 0 : 0
testisocmi : 0 : 0 : Unlimited : 0 : 0
bit2 : 0 : 0 : Unlimited : 0 : 0
DocumentosFEA : 0 : 1 : Unlimited : 0 : 0
cmm : 0 : 0 : Unlimited : 0 : 0
ra_sig : 0 : 2 : Unlimited : 0 : 1
cfbookclub : 0 : 0 : Unlimited : 0 : 0
foros_GPC : 0 : 0 : Unlimited : 0 : 0
ows : 0 : 0 : Unlimited : 0 : 0
guiasimple : 0 : 0 : Unlimited : 0 : 0
BSC_SQ : 0 : 0 : Unlimited : 0 : 0
dst : 0 : 0 : Unlimited : 0 : 0
cfusionlog : 0 : 0 : Unlimited : 0 : 0
MobileDashboard : 0 : 0 : Unlimited : 0 : 0
RA_Intra : 0 : 2 : Unlimited : 0 : 1
cfartgallery : 0 : 0 : Unlimited : 0 : 0
inventarios : 0 : 0 : Unlimited : 0 : 0
indicadores : 0 : 0 : Unlimited : 0 : 0
ForosDTT : 0 : 0 : Unlimited : 0 : 0
scdwalmi : 0 : 2 : Unlimited : 0 : 1
ForosSoldadura : 0 : 0 : Unlimited : 0 : 0
LocalServer : 0 : 0 : Unlimited : 0 : 0
curriculum : 0 : 1 : Unlimited : 0 : 0
ForosClasificados : 0 : 0 : Unlimited : 0 : 0
foros_PlanEstrategica : 0 : 0 : Unlimited : 0 : 0
bv : 0 : 1 : Unlimited : 0 : 0
ssdog : 0 : 0 : Unlimited : 0 : 0
Bitacora_SGIyD : 0 : 0 : Unlimited : 0 : 0
SIG : 0 : 1 : Unlimited : 0 : 0
satisfaccioncte : 0 : 0 : Unlimited : 0 : 0
IMD : 0 : 0 : Unlimited : 0 : 0
capacitacion : 0 : 0 : Unlimited : 0 : 0
vpnet : 0 : 0 : Unlimited : 0 : 0
portal_prestacion : 0 : 2 : Unlimited : 0 : 2
server : 0 : 4 : Unlimited : 0 : 3
capacitacion_foros : 0 : 0 : Unlimited : 0 : 0
indica2 : 0 : 0 : Unlimited : 0 : 0
votacion : 0 : 0 : Unlimited : 0 : 0
Thread jrpp-331 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@14bb595, tID=[Ljava.lang.String;@17e541f, action=[Ljava.lang.String;@c4ce59, fContent=[Ljava.lang.String;@c75e7c, eLink=[Ljava.lang.String;@10c33ce, recipient=[Ljava.lang.String;@1d36a4}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 86263 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 189120 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-310 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@1bf8ca4, tID=[Ljava.lang.String;@aa82a7, action=[Ljava.lang.String;@67d8a6, fContent=[Ljava.lang.String;@1c0abbc, eLink=[Ljava.lang.String;@4ae55d, recipient=[Ljava.lang.String;@11865d9}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 37611 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 190216 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-319 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@c6bd69, tID=[Ljava.lang.String;@1bd4b5b, action=[Ljava.lang.String;@9e7eba, fContent=[Ljava.lang.String;@191eddc, eLink=[Ljava.lang.String;@1971194, recipient=[Ljava.lang.String;@1031bbf}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 95001 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 167208 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-336 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@187f846, tID=[Ljava.lang.String;@1bcf4de, action=[Ljava.lang.String;@703f9d, fContent=[Ljava.lang.String;@160808b, eLink=[Ljava.lang.String;@9760da, recipient=[Ljava.lang.String;@57ab64}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 76250 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 185608 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-314 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@10d867a, tID=[Ljava.lang.String;@f7b83a, action=[Ljava.lang.String;@1601471, fContent=[Ljava.lang.String;@de17d5, eLink=[Ljava.lang.String;@eeb6ef, recipient=[Ljava.lang.String;@2c338c}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 50289 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 218808 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-315 request type - TEMPLATE REQUEST
*Template Path - E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Request Parameters - {BBP=[Ljava.lang.String;@d029df, tID=[Ljava.lang.String;@6d004d, action=[Ljava.lang.String;@2ee14d, fContent=[Ljava.lang.String;@1c98759, eLink=[Ljava.lang.String;@1d50f08, recipient=[Ljava.lang.String;@ce0137}
*Request Method - POST
*Client IP address - 172.16.0.36
*Thread elapsed time - 65402 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : SIMPLE : FILECONTENT : 182016 bytes
-APPLICATION : SIMPLE : PAGENAME : 88 bytes
-APPLICATION : SIMPLE : KEY : 56 bytes
-APPLICATION : SIMPLE : RESPONSE : 40 bytes
*CF stack -
E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
at E:\inetpub\wwwroot\CMIMobileServices\CMIMobileSigner\POSTListenerTest.cfm
*Currently executing queries -
Thread jrpp-317 request type - WEB SERVICE REQUEST
*Template Path - C:\ColdFusion8\wwwroot\Webservices\wsCF\wsMobileSigner.cfc uploadSignedDocument
*Request Parameters - {}
*Request Method - POST
*Client IP address - 172.16.0.3
*Thread elapsed time - 15092 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : CFC : THIS : 1728 bytes
-APPLICATION : CFC : THIS : 1728 bytes
-APPLICATION : CFC : THIS : 1728 bytes
-APPLICATION : CFC : OAPPROVALFLOWMGR : 1728 bytes
-APPLICATION : CFC : OAPPROVALFLOW : 1000 bytes
-APPLICATION : CFC : THIS : 1000 bytes
-APPLICATION : CFC : OOBJECT : 1000 bytes
-APPLICATION : CFC : THIS : 1000 bytes
-APPLICATION : CFC : THIS : 1000 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : ODOCUMENTMANAGER : 832 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : THIS : 832 bytes
-APPLICATION : CFC : THIS : 744 bytes
-APPLICATION : CFC : PARAMETERS : 744 bytes
-APPLICATION : CFC : THIS : 744 bytes
-APPLICATION : CFC : THIS : 744 bytes
-APPLICATION : STRUCT : ENTRIES : 744 bytes
-APPLICATION : CFC : OPARAMS : 744 bytes
-APPLICATION : CFC : THIS : 728 bytes
-APPLICATION : CFC : OAPPROVALFLOWGTW : 728 bytes
-APPLICATION : CFC : THIS : 728 bytes
-APPLICATION : CFC : THIS : 728 bytes
-APPLICATION : CFC : THIS : 728 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : OSIGNATUREMGR : 696 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : THIS : 680 bytes
-APPLICATION : CFC : THIS : 680 bytes
-APPLICATION : CFC : THIS : 680 bytes
-APPLICATION : CFC : OEMAILLINKDAO : 680 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : OEMAILLINK : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : CFC : THIS : 536 bytes
-APPLICATION : STRUCT : SIGNATURESTRUCT : 408 bytes
-APPLICATION : STRUCT : LASTSIGNATURE : 408 bytes
-APPLICATION : STRUCT : lastSignature : 408 bytes
-APPLICATION : STRUCT : RETURNVALUE : 408 bytes
-APPLICATION : QUERY : QRYRESULT : 392 bytes
-APPLICATION : QUERY : QRYREAD : 392 bytes
-APPLICATION : SIMPLE : lastSignature : 384 bytes
-APPLICATION : SIMPLE : LASTSIGNATURE : 384 bytes
-APPLICATION : CFC : THIS : 384 bytes
-APPLICATION : QUERY : QRYREAD : 344 bytes
-APPLICATION : QUERY : RESULT : 344 bytes
-APPLICATION : CFC : THIS : 296 bytes
-APPLICATION : CFC : OSOLICITUDFACTORY : 296 bytes
-APPLICATION : CFC : THIS : 296 bytes
-APPLICATION : SIMPLE : DOCPATH : 248 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : SIMPLE : MAILPATH : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : OSOLICITUD : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : OOBJECT : 232 bytes
-APPLICATION : SIMPLE : PATRON : 184 bytes
-APPLICATION : SIMPLE : PATH : 176 bytes
-APPLICATION : SIMPLE : TRACKID : 112 bytes
-APPLICATION : ARRAY : MATCH : 96 bytes
-APPLICATION : SIMPLE : TRACKID : 96 bytes
-APPLICATION : SIMPLE : FILEPATH : 88 bytes
-APPLICATION : SIMPLE : FILEPATH : 88 bytes
-APPLICATION : SIMPLE : mailTo : 80 bytes
-APPLICATION : SIMPLE : BACKUPFILENAME : 72 bytes
-APPLICATION : SIMPLE : LOGFILE : 72 bytes
-APPLICATION : SIMPLE : LOGFILE : 72 bytes
-APPLICATION : SIMPLE : HOST : 72 bytes
-APPLICATION : SIMPLE : FILEPATH : 64 bytes
-APPLICATION : SIMPLE : FILENAME : 64 bytes
-APPLICATION : SIMPLE : DSN : 64 bytes
-APPLICATION : SIMPLE : PATH : 64 bytes
-APPLICATION : SIMPLE : DSN : 64 bytes
-APPLICATION : SIMPLE : BBPIN : 56 bytes
-APPLICATION : SIMPLE : HASHALGORITHM : 56 bytes
-APPLICATION : SIMPLE : RELATIVEPATH : 48 bytes
-APPLICATION : SIMPLE : action : 48 bytes
-APPLICATION : SIMPLE : IdSolicitud : 48 bytes
-APPLICATION : SIMPLE : FOLIO : 48 bytes
-APPLICATION : SIMPLE : LOGGING : 48 bytes
-APPLICATION : SIMPLE : LOGGING : 48 bytes
-APPLICATION : SIMPLE : APP : 48 bytes
-APPLICATION : SIMPLE : ID : 48 bytes
-APPLICATION : SIMPLE : ID : 48 bytes
-APPLICATION : SIMPLE : folio : 48 bytes
-APPLICATION : SIMPLE : FOLIO : 48 bytes
-APPLICATION : SIMPLE : FILENAME : 48 bytes
-APPLICATION : SIMPLE : EXTENSION : 48 bytes
-APPLICATION : SIMPLE : PATCHVERSION : 40 bytes
-APPLICATION : SIMPLE : MAILPATH : 40 bytes
-APPLICATION : SIMPLE : OAPPROVALFLOWGTW : 40 bytes
-APPLICATION : SIMPLE : DSN : 40 bytes
-APPLICATION : SIMPLE : QRYREAD : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : SIMPLE : MINORVERSION : 40 bytes
-APPLICATION : SIMPLE : OSOLICITUD : 40 bytes
-APPLICATION : SIMPLE : OWEBSERVICE : 40 bytes
-APPLICATION : SIMPLE : SIGNERSANDSIGNATURES : 40 bytes
-APPLICATION : SIMPLE : IdApp : 40 bytes
-APPLICATION : SIMPLE : DECODED : 40 bytes
-APPLICATION : SIMPLE : BACKUPFILENAME : 40 bytes
-APPLICATION : SIMPLE : HASHALGORITHM : 40 bytes
-APPLICATION : SIMPLE : EXTENSION : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : STRUCT : ARGUMENTS : 40 bytes
-APPLICATION : SIMPLE : ID : 40 bytes
-APPLICATION : SIMPLE : PATH : 40 bytes
-APPLICATION : SIMPLE : ID : 40 bytes
-APPLICATION : SIMPLE : ENTRIES : 40 bytes
-APPLICATION : SIMPLE : OAPPROVALFLOW : 40 bytes
-APPLICATION : SIMPLE : OERRORHANDLER : 40 bytes
-APPLICATION : SIMPLE : XMLFROMQRY : 40 bytes
-APPLICATION : SIMPLE : SUPPORT : 40 bytes
-APPLICATION : SIMPLE : SECUENCIA : 40 bytes
-APPLICATION : SIMPLE : ACTIVO : 40 bytes
-APPLICATION : SIMPLE : MAJORVERSION : 40 bytes
-APPLICATION : SIMPLE : IDAPP : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : SIMPLE : TITLE : 40 bytes
-APPLICATION : SIMPLE : RESULT : 40 bytes
-APPLICATION : SIMPLE : OUPLOADREQUEST : 40 bytes
-APPLICATION : SIMPLE : LOGGER : 40 bytes
-APPLICATION : SIMPLE : IDAPP : 40 bytes
-APPLICATION : SIMPLE : OPKCS7 : 40 bytes
-APPLICATION : SIMPLE : FILENAME : 40 bytes
-APPLICATION : SIMPLE : FECHA : 40 bytes
-APPLICATION : SIMPLE : DOCPATH : 40 bytes
-APPLICATION : SIMPLE : PARAMETERS : 40 bytes
-APPLICATION : SIMPLE : RESULT : 40 bytes
-APPLICATION : SIMPLE : OMULTISIGNERMANAGER : 40 bytes
-APPLICATION : SIMPLE : APP : 40 bytes
-APPLICATION : SIMPLE : FILENAME : 40 bytes
-APPLICATION : SIMPLE : timestamp : 24 bytes
-APPLICATION : SIMPLE : MAXDATE : 24 bytes
-APPLICATION : SIMPLE : ExecutionTime : 16 bytes
-APPLICATION : SIMPLE : IdEmpleado : 16 bytes
-APPLICATION : SIMPLE : IIDX : 16 bytes
-APPLICATION : STRUCT : CFSTOREDPROC : 16 bytes
-APPLICATION : SIMPLE : CFQUERY.EXECUTIONTIME : 16 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : SIMPLE : FECHA : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : LASTSIGNATURE : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : SIMPLE : FECHA : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
*CF stack -
C:\ColdFusion8\CustomTags\com\comimsa\blackberry\feamobile\model\ThirdPartyApprovalFlow.cf c execute()
at C:\ColdFusion8\CustomTags\com\comimsa\blackberry\feamobile\ApprovalFlowManager.cfc start() : 56
at C:\ColdFusion8\CustomTags\com\comimsa\feaframework\DocumentManager.cfc existsLocalFile() : 79
at C:\ColdFusion8\CustomTags\com\comimsa\feaframework\DocumentManager.cfc existsFile() : 111
at C:\ColdFusion8\CustomTags\com\comimsa\blackberry\feamobile\model\EmailLink.cfc isAuthentic() : 52
at C:\ColdFusion8\wwwroot\Webservices\wsCF\wsMobileSigner.cfc uploadSignedDocument() : 40
*Currently executing queries -
Thread jrpp-333 request type - WEB SERVICE REQUEST
*Template Path - C:\ColdFusion8\wwwroot\Webservices\wsCF\wsMobileSigner.cfc uploadSignedDocument
*Request Parameters - {}
*Request Method - POST
*Client IP address - 172.16.0.3
*Thread elapsed time - 87170 milliseconds
*Application Name -
*request/local/variables scope variables
[Scope Type: Type : Name : Size]
-APPLICATION : CFC : THIS : 1776 bytes
-APPLICATION : CFC : THIS : 1776 bytes
-APPLICATION : CFC : THIS : 1776 bytes
-APPLICATION : CFC : OAPPROVALFLOWMGR : 1776 bytes
-APPLICATION : CFC : OAPPROVALFLOW : 1024 bytes
-APPLICATION : CFC : THIS : 1024 bytes
-APPLICATION : CFC : OOBJECT : 1024 bytes
-APPLICATION : CFC : THIS : 1024 bytes
-APPLICATION : CFC : THIS : 1024 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : ODOCUMENTMANAGER : 840 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : THIS : 840 bytes
-APPLICATION : CFC : THIS : 760 bytes
-APPLICATION : CFC : PARAMETERS : 760 bytes
-APPLICATION : CFC : THIS : 760 bytes
-APPLICATION : CFC : THIS : 760 bytes
-APPLICATION : STRUCT : ENTRIES : 760 bytes
-APPLICATION : CFC : OPARAMS : 760 bytes
-APPLICATION : CFC : THIS : 752 bytes
-APPLICATION : CFC : OAPPROVALFLOWGTW : 752 bytes
-APPLICATION : CFC : THIS : 752 bytes
-APPLICATION : CFC : THIS : 752 bytes
-APPLICATION : CFC : THIS : 752 bytes
-APPLICATION : CFC : THIS : 704 bytes
-APPLICATION : CFC : THIS : 704 bytes
-APPLICATION : CFC : OSIGNATUREMGR : 704 bytes
-APPLICATION : CFC : THIS : 704 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : THIS : 696 bytes
-APPLICATION : CFC : OEMAILLINKDAO : 696 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : OEMAILLINK : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : CFC : THIS : 560 bytes
-APPLICATION : QUERY : QRYRESULT : 408 bytes
-APPLICATION : STRUCT : SIGNATURESTRUCT : 408 bytes
-APPLICATION : STRUCT : LASTSIGNATURE : 408 bytes
-APPLICATION : STRUCT : lastSignature : 408 bytes
-APPLICATION : STRUCT : RETURNVALUE : 408 bytes
-APPLICATION : QUERY : QRYREAD : 408 bytes
-APPLICATION : SIMPLE : lastSignature : 384 bytes
-APPLICATION : SIMPLE : LASTSIGNATURE : 384 bytes
-APPLICATION : CFC : THIS : 384 bytes
-APPLICATION : QUERY : QRYREAD : 352 bytes
-APPLICATION : QUERY : RESULT : 352 bytes
-APPLICATION : CFC : THIS : 304 bytes
-APPLICATION : CFC : OSOLICITUDFACTORY : 304 bytes
-APPLICATION : CFC : THIS : 304 bytes
-APPLICATION : CFC : THIS : 256 bytes
-APPLICATION : CFC : THIS : 256 bytes
-APPLICATION : CFC : THIS : 256 bytes
-APPLICATION : CFC : OSOLICITUD : 256 bytes
-APPLICATION : CFC : THIS : 256 bytes
-APPLICATION : CFC : THIS : 256 bytes
-APPLICATION : CFC : OOBJECT : 256 bytes
-APPLICATION : SIMPLE : DOCPATH : 248 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : SIMPLE : MAILPATH : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : THIS : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : CFC : LOGGER : 232 bytes
-APPLICATION : SIMPLE : PATRON : 184 bytes
-APPLICATION : SIMPLE : PATH : 176 bytes
-APPLICATION : SIMPLE : TRACKID : 112 bytes
-APPLICATION : ARRAY : MATCH : 104 bytes
-APPLICATION : SIMPLE : TRACKID : 104 bytes
-APPLICATION : SIMPLE : FILEPATH : 88 bytes
-APPLICATION : SIMPLE : FILEPATH : 88 bytes
-APPLICATION : SIMPLE : BACKUPFILENAME : 80 bytes
-APPLICATION : SIMPLE : mailTo : 80 bytes
-APPLICATION : SIMPLE : FILENAME : 72 bytes
-APPLICATION : SIMPLE : LOGFILE : 72 bytes
-APPLICATION : SIMPLE : LOGFILE : 72 bytes
-APPLICATION : SIMPLE : HOST : 72 bytes
-APPLICATION : SIMPLE : FILEPATH : 64 bytes
-APPLICATION : SIMPLE : DSN : 64 bytes
-APPLICATION : SIMPLE : PATH : 64 bytes
-APPLICATION : SIMPLE : DSN : 64 bytes
-APPLICATION : SIMPLE : IdSolicitud : 56 bytes
-APPLICATION : SIMPLE : FOLIO : 56 bytes
-APPLICATION : SIMPLE : BBPIN : 56 bytes
-APPLICATION : SIMPLE : ID : 56 bytes
-APPLICATION : SIMPLE : folio : 56 bytes
-APPLICATION : SIMPLE : HASHALGORITHM : 56 bytes
-APPLICATION : SIMPLE : FOLIO : 56 bytes
-APPLICATION : SIMPLE : FILENAME : 56 bytes
-APPLICATION : SIMPLE : RELATIVEPATH : 48 bytes
-APPLICATION : SIMPLE : action : 48 bytes
-APPLICATION : SIMPLE : LOGGING : 48 bytes
-APPLICATION : SIMPLE : LOGGING : 48 bytes
-APPLICATION : SIMPLE : APP : 48 bytes
-APPLICATION : SIMPLE : ID : 48 bytes
-APPLICATION : SIMPLE : EXTENSION : 48 bytes
-APPLICATION : SIMPLE : PATCHVERSION : 40 bytes
-APPLICATION : SIMPLE : MAILPATH : 40 bytes
-APPLICATION : SIMPLE : OAPPROVALFLOWGTW : 40 bytes
-APPLICATION : SIMPLE : DSN : 40 bytes
-APPLICATION : SIMPLE : QRYREAD : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : SIMPLE : MINORVERSION : 40 bytes
-APPLICATION : SIMPLE : OSOLICITUD : 40 bytes
-APPLICATION : SIMPLE : OWEBSERVICE : 40 bytes
-APPLICATION : SIMPLE : SIGNERSANDSIGNATURES : 40 bytes
-APPLICATION : SIMPLE : IdApp : 40 bytes
-APPLICATION : SIMPLE : DECODED : 40 bytes
-APPLICATION : SIMPLE : BACKUPFILENAME : 40 bytes
-APPLICATION : SIMPLE : HASHALGORITHM : 40 bytes
-APPLICATION : SIMPLE : EXTENSION : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : STRUCT : ARGUMENTS : 40 bytes
-APPLICATION : SIMPLE : ID : 40 bytes
-APPLICATION : SIMPLE : PATH : 40 bytes
-APPLICATION : SIMPLE : ID : 40 bytes
-APPLICATION : SIMPLE : ENTRIES : 40 bytes
-APPLICATION : SIMPLE : OAPPROVALFLOW : 40 bytes
-APPLICATION : SIMPLE : OERRORHANDLER : 40 bytes
-APPLICATION : SIMPLE : XMLFROMQRY : 40 bytes
-APPLICATION : SIMPLE : SUPPORT : 40 bytes
-APPLICATION : SIMPLE : SECUENCIA : 40 bytes
-APPLICATION : SIMPLE : ACTIVO : 40 bytes
-APPLICATION : SIMPLE : MAJORVERSION : 40 bytes
-APPLICATION : SIMPLE : IDAPP : 40 bytes
-APPLICATION : SIMPLE : FOLIO : 40 bytes
-APPLICATION : SIMPLE : TITLE : 40 bytes
-APPLICATION : SIMPLE : RESULT : 40 bytes
-APPLICATION : SIMPLE : OUPLOADREQUEST : 40 bytes
-APPLICATION : SIMPLE : LOGGER : 40 bytes
-APPLICATION : SIMPLE : IDAPP : 40 bytes
-APPLICATION : SIMPLE : OPKCS7 : 40 bytes
-APPLICATION : SIMPLE : FILENAME : 40 bytes
-APPLICATION : SIMPLE : FECHA : 40 bytes
-APPLICATION : SIMPLE : DOCPATH : 40 bytes
-APPLICATION : SIMPLE : PARAMETERS : 40 bytes
-APPLICATION : SIMPLE : RESULT : 40 bytes
-APPLICATION : SIMPLE : OMULTISIGNERMANAGER : 40 bytes
-APPLICATION : SIMPLE : APP : 40 bytes
-APPLICATION : SIMPLE : FILENAME : 40 bytes
-APPLICATION : SIMPLE : timestamp : 24 bytes
-APPLICATION : SIMPLE : MAXDATE : 24 bytes
-APPLICATION : SIMPLE : ExecutionTime : 16 bytes
-APPLICATION : SIMPLE : IdEmpleado : 16 bytes
-APPLICATION : SIMPLE : IIDX : 16 bytes
-APPLICATION : STRUCT : CFSTOREDPROC : 16 bytes
-APPLICATION : SIMPLE : CFQUERY.EXECUTIONTIME : 16 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPLICATION : STRUCT : ARGUMENTS : 0 bytes
-APPOn the Win 08 r2 64 bit CF8 32 bit server I was able to install both jdk-6u27-windows-i586.exe and jdk-6u27-windows-x64.exe concurrently.
This worked:
# VM configuration
#java.home=C:/ColdFusion8/runtime/jre
java.home=C:/Java32/jdk1.6.0_27/jre
#java.home=C:/Program Files/Java/jdk1.6.0_27/jre
In part - CFadmin > Server Settings > Settings Summary
Server Details
Server Product ColdFusion
Version 8,0,0,176276
Edition Standard
Operating System Windows Server 2008 R2
OS Version 6.1
JVM Details
Java Version 1.6.0_27
Java Vendor Sun Microsystems Inc.
Java Vendor URL http://java.sun.com/
Java Home C:\Java32\jdk1.6.0_27\jre
User Home C:\
User Dir C:\ColdFusion8\runtime\bin
Java VM Specification Version 1.0
Java VM Specification Vendor Sun Microsystems Inc.
Java VM Specification Name Java Virtual Machine Specification
Java VM Version 20.2-b06
Java VM Vendor Sun Microsystems Inc.
Java VM Name Java HotSpot(TM) Server VM
Java Specification Version 1.6
This failed:
# VM configuration
#java.home=C:/ColdFusion8/runtime/jre
#java.home=C:/Java32/jdk1.6.0_27/jre
java.home=C:/Program Files/Java/jdk1.6.0_27/jre
Where CF8\runtime\logs\OUT log reports:
Error loading: C:/Program Files/Java/jdk1.6.0_27/jre\bin\server\jvm.dll
Error loading: C:/Program Files/Java/jdk1.6.0_27/jre\bin\server\jvm.dll
I thought CF8 32 bit would struggle with a 64 bit Java. Only had a short time window to try this so did not do any further experiments with trying to make the 64 bit Java function with CF8 like moving or swapping other DLL files around.
Not sure that helps you much since you said the 32 bit JDK did not install. I suppose I have replicated what you found that CF8 got the same startup problem you saw with 64 bit JDK.
What else can I suggest? In my case the particular site was working well CF8 with 1.6.0_04 JVM. The JVM had some tuned values applied to the minimum and maximum memory heap and non-heap values as well as garbage collector had core switch applied so it was working multi-threaded. I guess for me it will be interesting to note if any problems arise since I have left the site running 1.6.0_27 32 bit JDK (aka free upgrade).
Regards, Carl. -
I'm trying to call a web service from CF8, running on Mac OS
X 10.4.10 (with all updates).
I'm getting this error on the cfinvoke line:
coldfusion.jsp.JavaCompiler$UnknownCompiler: Unable to run
the internal Java compiler: java.lang.NoClassDefFoundError:
javax/tools/StandardJavaFileManager.
This is using Java 5 that comes as part of OS X (again with
all updates). Browsing to the WSDL for the CFC in question returns
the expected wsdl. javax.tools.StandardJavaFileManager appears to
be part of Java 6, not Java 5. I tried installing the Java 6
pre-release for Tiger from last fall, doesn't seem to make a
difference.
MarkI'm answering this for myself, as no one else has. It appears
that CF8 ships with the JDK 1.6 tools.jar file in cfusion/lib. The
JDK1.5, which is current on a Mac, includes the 1.5 version of the
tools.jar. The conflict causes the JVM to blow up. Removing the
tools.jar on a mac should let the native tools.jar work. On a PC,
if you're swapping between a 1.5 and 1.6 JVM, you'll need to
replace the cfusion/lib/tools.jar with the correct version. Adobe
needs to write an official technote on this.
Information gleaned from:
http://www.petefreitag.com/item/652.cfm
http://coldfused.blogspot.com/2007/08/coldfusion-and-webservice-file-has.html
http://rahulnarula.blogspot.com/2007/06/coldfusion-8-installation-tip.html -
Ok, I'm working on my first CFC, and having some problems.
The code I have
so far is:
<cfcomponent displayname="duplicate" hint="Duplicates
local club
tournaments">
<!--- This function retrieves all customers from the
database --->
<cffunction name="getinfo"
hint="Gets all tournament info from the database">
<cfquery name="DuplicateTournamentList"
datasource="SalleBoise">
select * from clubtournaments
where TournID=#session.tid#
</cfquery>
<cfset NewEventName=DuplicateTournamentList.TournName>
<cfset NewEventDesc=DuplicateTournamentList.TournDesc>
<cfset
NewDateTime=dateadd("m",2,dateformat(TournDateTime,"mm/dd/yyyy"))>
<cfset
NewTournFoil=DuplicateTournamentList.TournFoilEvent>
<cfset
NewTournEpee=DuplicateTournamentList.TournEpeeEvent>
<cfset NewType=DuplicateTournamentList.EventType>
<cfset
NewDuplicate=DuplicateTournamentList.TournDuplicated>
<cfquery name="NewTourn" datasource="SalleBoise">
insert into clubtournaments
(TournName,TournDesc,TournFoilEvent,TournEpeeEvent,EventType,TournDateTime,TournDuplicate d)
values
(#NewEventName#,#NewEventDesc#,#NewTournFoil#,#NewTournEpee#,#NewType#,#NewDateTime#,#NewD uplicate#)
</cfquery>
<cfquery name="UpdateOldTourn" datasource="SalleBoise">
update clubtournaments
set TournDuplicated=1
where TournID=#session.tid#
</cfquery>
</cffunction>
</cfcomponent>
And I'm calling it with:
<cfinvoke component="duplicate.cfc" method="getinfo">
And I'm getting:
Error Occurred While Processing Request
Could not find the ColdFusion Component or Interface
duplicate.cfc.
Ensure that the name is correct and that the component or
interface exists.The 1 question I have with your code that is different than
mine is the
query. Mine, I had hoped would take the info from the
previous event,
and add a number of months to it before adding it into the
table.
It looks like yours simple duplicates the event without
changing that
date, correct?
Azadi wrote:
> first, rtfm about <cfinvoke> tag. the component
attribute needs a
> dot-delimited path to your cfc, i.e. if your cfc is
stored in a
> components folder under web root and your calling
template is also in
> the webroot: component="components.duplicate"
>
> then, it is not a good practice to access outside
variables from within
> the cfc - in your case you are accessing session vars.
you better pass
> them in to your cfc as arguments when you invoke it and
have
> <cfargument> tags in your function that accept
them (see code at the bottom)
>
> <cfinvoke component="components.duplicate"
method="getinfo"
> tid="#session.tid">
>
> or
>
> <cfinvoke component="components.duplicate"
method="getinfo">
> <cfinvokeargument name="tid"
value="#session.tid#">
> </cfinvoke>
>
> then, variable scoping - always scope any cfc vars with
var: <cfset var
> somevar = something>. this will help you avoid
variables confusion when
> your calling page has vars with same names.
>
> then, even inside cfc, you should always use
<cfqueryparam> tags in your
> queries.
>
> as for your queries - the 3 of them can be combined
easily into one.
>
> so your function in the end can look something like:
> [note: query syntax is db-specific; check your db for
correct syntax to use]
>
> <cffunction name="getinfo"
> hint="Gets all tournament info from the database"
returntype="boolean"
> output="no">
> <cfargument name="tid" required="yes"
type="numeric">
> <cfset var DuplicateTournamentList = "">
> <cfset var result = true>
> <cftry>
> <cfquery name="DuplicateTournamentList"
datasource="SalleBoise">
> INSERT INTO clubtournaments
> (TournName, TournDesc, TournFoilEvent, TournEpeeEvent,
EventType,
> TournDateTime, TournDuplicated)
> SELECT TournName, TournDesc, TournFoilEvent,
TournEpeeEvent, EventType,
> TournDateTime, 1 AS TournDuplicated
> FROM clubtournaments
> WHERE TournID = <cfqueryparam
cfsqltype="cf_sql_integer"
> value="#arguments.tid#">
> </cfquery>
> <cfcatch type="any">
> <cfset result = false>
> </cfcatch>
> </cftry>
> <cfreturn result />
> </cffunction>
>
> and your cfinvoke something like the examples above.
>
> hth
>
>
> Azadi Saryev
> Sabai-dee.com
>
http://www.sabai-dee.com/ -
CFC question - dynamically changing more than just an argument
Hopefully this is really simple and obvious but I cna't find anything at the moment.
I have the following query
<cfquery name="dept" datasource="#dbdsnd#" username="#dbuname#" password="#dbpass#">
SELECT * from dept
WHERE deptCurrent = "Y"
AND deptID <> "0"
ORDER BY deptName
</cfquery>
which is currently in my cfm file but I'm trying to move into a cfc. This I can do!
The next stage of this would be to include arguments for the deptID. Again this I can do!
Where I'm struggling is trying use this for many purposes sticking to the deptID in the where clause I'm currently using the following variants (some in psuedo code sorry)
<cfif user neq "michael"><cfelse>And deptID <>"#value#"</cfif> (CFC objects to the cfif)
AND deptID = "#value#" (= rather than <>)
Is there an easy way? Could my argument be the whole line so I could use
SELECT * from dept
WHERE deptCurrent = "Y"
#ARGUMENT.deptIDcode#
ORDER BY deptName
Thanks
MichaelWriting this out seems to have answered my question - I can replace the line with #argument.xxx#
-
So I can finally get around to learning proper usage of
cffunctions and CFCs, I'm working on a quick test app to get the
basics down. My question has to do with return types.
For example, I have a function called "updateUser". A form
passes the usual info along with a userID into the function.
If the update is successful, I want to display a message "You
have updated the user."
I'm getting hung up on the return types - specifically the
use of a boolean return. Assuming if the update goes ok, the
boolean return would be true. How can I test for this back on the
update page?
If return type is true - display success message
else if it's false - display an error message
I guess I could put some additional cfreturns in the function
and return a message string, but this just doesn't seem right?To expand a bit on what Simon mentioned, here's how you might
structure the CFC Method/Function to return a boolean:
<cffunction name="updateUser" access="public"
returntype="boolean">
<cfargument name="userId" type="numeric"
required="true"/>
<cfargument name="username" type="string"
required="true"/>
<cfargument name="email" type="string"
required="true"/>
<cfset updateOk = true />
<cftry>
<cfquery datasource="dsn" name="qryUpdateUser">
update user set username='#arguments.username#' where userId
= #arguments.userId#
</cfquery>
<cfcatch type="database">
<cfset updateOk = false />
</cfcatch>
</cftry>
<cfreturn updateOk/>
</cffunction>
If the query above runs without an error, the value of
updateOk remains true. If there is an error in the DB, the CFCATCH
block will be run, setting the value of updateOk to false.
At the end of the function, the value of updateOk is returned
to the calling page/code block.
Then, with the code Simon provided, you can use this in your
calling page:
<cfif updateUser(userID, name,. email)>
Success
<cfelse>
Failure
</cfif>
Wasn't sure if you were just having trouble on the calling
page (where you want to output the success/failure message or with
how to return the boolean value from the function as well. Hope
this helps. -
I have an index.cfm with a login form which uses the
security.cfc below
There are two cffunctions.
The first one "authenticate" works fine which checks the
passed username and password from the login form
and returns the result to the index.cfm page
The next one is "authorize" which finds the corresponding
groupID(s) -the access level- from the db based on the username in
the login. There are three levels of groupIDs 1, 2 or 3.
What I don´t understand is how to "combine the two
functions" so they are both invoked when a user logins in so I can
control what happens to a user after they have logged in based on
their groupID.
At the moment only the authentication function is invoked.
Should I have just one function? How can I make the authorize
function work? Thanks a lot for any help greatly appreciated so I
can understand this
security.cfc
<cfcomponent>
<cffunction access="public" name="authenticate"
output="0">
<!--- security authentication function --->
<!--- username and password required --->
<cfargument name="cfcUsername" type="string"
required="1"/>
<cfargument name="cfcPassword" type="string"
required="1"/>
<!--- query the SecurityDB for the passed username and
password --->
<cfquery name="checkAuthentication"
datasource="SecurityDB" username="root" password="riveravon">
SELECT username, userID
FROM Security
WHERE username = '#arguments.cfcUsername#'
AND password = '#arguments.cfcPassword#'
</cfquery>
<!--- return the appropriate result --->
<cfif checkAuthentication.recordCount>
<!--- check the users security groups so we can see what
groupID and therefore access level they have --->
<cfquery name="getUserGroups" datasource="SecurityDB"
username="root" password="riveravon">
SELECT security_groups.groupID, groups.groupID
FROM groups, security_groups
WHERE groups.groupID = security_groups.groupID
AND security_groups.username = '#arguments.cfcUsername#'
</cfquery>
<cfreturn checkAuthentication.username/>
<cfelse>
<cfreturn 0/>
</cfif>
</cffunction>
<cffunction access="public" name="authorize"
output="0">
<!--- security function finding what groupID and therefore
access level--->
<!--- username from login form used to check group IDs
--->
<cfargument name="cfcUsername" type="string"
required="1"/>
<!--- query the SecurityDB and get all group id for the
passed username --->
<cfquery name="getUserGroups" datasource="SecurityDB"
username="root" password="riveravon">
SELECT groupID
FROM Security_Groups
WHERE username = '#arguments.cfcUsername#'
</cfquery>
<!--- return the appropriate groupID(s) --->
<cfif getUserGroups.recordCount>
<cfreturn getUserGroups.groupID/>
<cfelse>
<cfreturn 0/>
</cfif>
</cffunction>
</cfcomponent>
index.cfm
<cfparam name="form.username" default="">
<cfparam name="form.groupID" default="0">
<!--- Check for form submission --->
<cfif structKeyExists(form,"checkAuth")>
<!--- The user pressed the authenticate button --->
<cfinvoke
component="security"
method="authenticate"
returnVariable="authenticated"
cfcUsername="#form.username#"
cfcPassword="#form.password#">
</cfif>
<body>
<div id=navbar2>
<cfif isDefined("variables.authenticated")>
<cfif variables.authenticated NEQ 0>
<b>Username and Password Authenticated
Successfully!</b>
<cfelse>
<b>Username and/or Password was incorrect!</b>
</cfif>
</cfif>
<form name="checkAuth" method="post"
action="index.cfm">
<br> <b>Email:</b>
<input name="username" type="Text"
class="ftforminputsmall" tabindex="1" maxlength="50">
<b>Password:</b>
<input name="password" type="password"
class="ftforminputsmall" maxlength="50" tabindex="2">
<input tabindex="3" type="Submit" name="checkAuth"
class="ftforminputsmall">
</form>
</div>
</body>You could indeed simplify further. Here is an example.
-
Question on configuring remote cfc call
I am curious if i can connect to remote cfc, hosted on the server other then localhost through FB4? For example i have some cfc which are displaying some data from a remote DB. I'd like to have my Flash Builder project to be connected to the ColdFusion server on my shared hosting and display an actual data from there,or at least to be able to connect to a cfc on the same server through Data Panel. Is this doable? How i can configure my project to access remote CF server.
Thanks in advance.Yes , you can. I'm not sure how to use the Flashbuilder4 data-services thing to connect to the remote services. But you have to make sure your remote cfc enviroment has a crossdomain.xml file. I always forget to have one of those and I spend more time than necessary bug-hunting.
Sincerely ,
Ubu -
Question regarding ScrollView and pageControl with multiple XIBs
Hi,
I am very new to iPhone programmming and OO type programming in general so please forgive me for my basic questions.
I am trying to set a paging scrollview up with each page being loaded from a different XIB and put into a view controller. This viewcontroller is attached to a scrollview that's put on a "Detail" view. I have this working OK with blank XIB pages.
My question is, when I start adding fields/buttons to the different XIBs how should I then process the actions etc. Do I create a seperate .h and .m file for each XIB and add the individual screen processing into the individual classes or do I use a single class (the "Detail" screen) and do all the processing in that class?, is that even possible?
I do hope that this makes sense. I'm still going through the basic learning books and I'm maybe trying to run before I can walk.
Any help is most appreciated.
ThanksHi Ziximo, and welcome to the Dev Forums!
Ziximo wrote:
I am very new to iPhone programmming and OO type programming in general so please forgive me for my basic questions.
No forgiveness is necessary. You came to the right place.
I am trying to set a paging scrollview up with each page being loaded from a different XIB and put into a view controller. This viewcontroller is attached to a scrollview that's put on a "Detail" view. I have this working OK with blank XIB pages.
In case it's useful to you, here's a thread which shows how to use the PageControl sample app as the template for what you're doing: [Re: Flipping through views help|http://discussions.apple.com/thread.jspa?messageID=10417960�].
My question is, when I start adding fields/buttons to the different XIBs how should I then process the actions etc.
The advice you have from thomas-r is right on target, so I'll just try to add to that. Firstly, I think you may be making a diligent attempt at "top-down" design, which is commendable. However there's a dirty little secret that working programmers don't share with managers: Quite often we don't produce the functional specification until we get the code working.
In other words, thomas-r's reference to Murphy isn't an insult. That's just how software gets designed.
In general, the decision to make a new class should be based on encapsulation and re-usability. For example when you get a memory warning, you might want to release all of the resources required for a screen that isn't currently visible. If that screen and its controller can be fully regenerated from one nib, this can be an easy task.
As another example, say the top-level controller is an instance of your ScrollViewController class. If you limit that controller to managing the scroll view and page control, you'll probably have a class you can reuse the next time you need a paging scroll view. But if you pack the functionality for multiple content views into that same controller, the class will only be useful for an identical app.
.. or do I use a single class (the "Detail" screen) and do all the processing in that class?, is that even possible?
So, no, I would definitely not attempt to put all the control in one class. Yes, it's possible, but besides being bad practice, it's awkward to implement. For example, when you make a nib which is owned by a view controller, it's easy to connect that controller's outlets and action methods to controls which are defined in that nib. There are ways to connect controls to an object defined in another nib, but it's much more difficult. It's not a "natural" configuration, and that by itself should give us second thoughts about our design. On the other hand, if we make one giant nib which is owned by the top-level controller, memory management goes out the window. We would need to unload everything in that nib to gracefully handle a memory warning.
Do I create a seperate .h and .m file for each XIB and add the individual screen processing into the individual classes ...
Yes. This gives us the reusability and encapsulation we want. The only remaining question is: "Do I need a separate controller class with it's own custom xib for each screen?". Well you may not. There could be two or more screens that are so similar (e.g. the same layout and functionality but with a different image) they can each use an instance of the same controller class and share the same xib.
I usually start with a different controller class and a different xib for each screen. Then, near the end of the project, I'll look at all those controllers and see if two or more are nearly identical. If so, I might get rid of one or more classes, and possibly one or more xibs as well. But I'd almost never assume I can merge two controller classes at the outset. If I did that, I might start adding kludges to the merged class as I found differences between the screens I hadn't seen earlier. When the merged class finally got too complex for anyone to maintain, the job of splitting it up might be nasty.
I do hope that this makes sense.
I think that's my line.
I'm still going through the basic learning books and I'm maybe trying to run before I can walk.
If you've suceeded in getting the skeleton working--i.e. you're paging through blank screens, each with it's own vanilla controller/xib, without any bugs, I'd say you're more than ready for the question you're asking here. And it's a very good question.
\- Ray -
I have a few questions about CF 11. I have just installed CF 11 on a Windows 8 server. This
is an all new server and software installation. It isn’t to where it can be
viewed outside of our network just yet until we have everything installed and
running properly on it. When it is all complete we will turn off the current
server and change the name of this one and make it public. We have the
certificate on it from the live site. So the name of the certificate and the
name of the server do not match.I have had my websites on CF 7, CF 8 and CF 9
servers previously.
We have used mappings on all of our previous versions with image tags and ahref tags. Have
things changed in CF 11 to not allow this anymore? An example is <img
src="/PACTlogin/loginIMages/LoginPicture1.jpg" alt="Login Image"
/>.(/PACTlogin is the mapping) We use the mappings like this because we have
dynamic pages being built. The same goes for ahref tags. An example of it is <a
href="/pact/pactacademy/Index.cfm">PACT Academy</a> (/pact
is the mapping). I have the mapping set up in the administrator just like I
have used on all previous versions of CF. On CF 11 it says the image is
missing. When you right click on the image it is actually looking for the image
in a folder called PACTlogin or pact. Which doesn’t actually exist because it
is a mapping. The mappings continue to work as expected in CF tags like
cflocation or cfinclude. What is the work around to get this to work again? Do
you create an application variable in the Application.cfc and use it in the tag
like <img src="<cfoutput>#application.Addr#</cfoutput>/login/loginIMages/LoginPicture1.jpg"
alt="" />? Is there a better way to do this? What are some ideas?
I have googled lots of things and haven’t come up with much except that CF is being
used with HTML 5 and since HTML tags like img and ahref are not cf tags it
doesn’t recognize the link as a mapping as it did before. Is this correct?
I have taken and created an application variable on Application.cfc and used it in place of
the mappings and it still isn’t working. An example is <img src="<cfoutput>#application.Addr#</cfoutput>/login/loginIMages/LoginPicture1.jpg"
alt="login Image" />. Any ideas on why this won’t work either?
Here is what my page looks like now.
This is what the page looks like when I go directly to the image in the browser.
It is totally blank. Not even an X…
I would appreciate any help or ideas. Thank you in advance.If your HTML <IMG> tag is pointing to a normal image (PNG, JPG, GIF, etc...) then ColdFusion is not involved whatsoever. Only the webserver, IIS, serves images using the code you've entered. IIS has no idea what your CF Mappings are. CFLocation and CFInclude, however, are CF tags and so are processed by CF and are aware of the CF mappings.
What I imagine has happened is your old servers has Virtual Directories defined in IIS that were identical to your CF Mappings. Compare you directory structures in IIS between your old and new servers to see if this is the case. -
ColdFusion 11: custom serialisers. More questions than answers
G'day:
I am reposting this from my blog ("ColdFusion 11: custom serialisers. More questions than answers") at the suggestion of Adobe support:
@dacCfml @ColdFusion Can you post your queries at http://t.co/8UF4uCajTC for all cfclient and mobile queries.— Anit Kumar Panda (@anitkumar85) April 29, 2014
This particular question is not regarding <cfclient>, hence posting it on the regular forum, not on the mobile-specific one as Anit suggested. I have edited this in places to remove language that will be deemed inappropriate by the censors here. Changes I have made are in [square brackets]. The forums software here has broken some of the styling, but so be it.
G'day:
I've been wanting to write an article about the new custom serialiser one can have in ColdFusion 11, but having looked at it I have more questions than I have answers, so I have put it off. But, equally, I have no place to ask the questions, so I'm stymied. So I figured I'd write an article covering my initial questions. Maybe someone can answer then.
ColdFusion 11 has added the notion of a custom serialiser a website can have (docs: "Support for pluggable serializer and deserializer"). The idea is that whilst Adobe can dictate the serialisation rules for its own data types, it cannot sensibly infer how a CFC instance might get serialised: as each CFC represents a different data "schema", there is no "one size fits all" approach to handling it. So this is where the custom serialiser comes in. Kind of. If it wasn't a bit rubbish. Here's my exploration thusfar.
One can specify a custom serialiser by adding a setting to Application.cfc:
component { this.name = "serialiser01"; this.customSerializer="Serialiser"; }
In this case the value - Serialiser - is the name of a CFC, eg:
// Serialiser.cfccomponent { public function canSerialize(){ logArgs(args=arguments, from=getFunctionCalledName()); return true; } public function canDeserialize(){ logArgs(args=arguments, from=getFunctionCalledName()); return true; } public function serialize(){ logArgs(args=arguments, from=getFunctionCalledName()); return "SERIALISED"; } public function deserialize(){ logArgs(args=arguments, from=getFunctionCalledName()); return "DESERIALISED"; } private function logArgs(required struct args, required string from){ var dumpFile = getDirectoryFromPath(getCurrentTemplatePath()) & "dump_#from#.html"; if (fileExists(dumpFile)){ fileDelete(dumpFile); } writeDump(var=args, label=from, output=dumpFile, format="html"); } }
This CFC needs to implement four methods:
canSerialize() - indicates whether something can be serialised by the serialiser;
canDeserialize() - indicates whether something can be deserialised by the serialiser;
serialize() - the function used to serialise something
deserialize() - the function used to deserialise something
I'm being purposely vague on those functions for a reason. I'll get to that.
The first [issue] in the implementation here is that for the custom serialisation to work, all four of those methods must be implemented in the serisalisation CFC. So common sense would dictate that a way to enforce that would be to require the CFC to implement an interface. That's what interfaces are for. Now I know people will argue the merit of having interfaces in CFML, but I don't really give a [monkey's] about that: CFML has interfaces, and this is what they're for. So when one specifies the serialiser in Application.cfc and it doesn't fulfil the interface requirement, it should error. Right then. When one specifies the inappropriate tool for the job. What instead happens is if the functions are omitted, one will get erratic behaviour in the application, through to outright errors when ColdFusion goes to call the functions and cannot find it. EG: if I have canSerialize() but no serialize() method, CF will error when it comes to serialise something:
JSON serialization failure: Unable to serialize to JSON.
Reason : The method serialize was not found in component C:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/Serialiser .cfc.
The error occurred inC:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/testBasic.c fm: line 4
2 : o = new Basic();
3 :
4 : serialised = serializeJson(o);5 : writeDump([serialised]);
6 :
Note that the error comes when I go to serialise something, not when ColdFusion is told about the serialiser in the first place. This is just lazy/thoughtless implementation on the part of Adobe. It invites bugs, and is just sloppy.
The second [issue] follows immediately on from this.
Given my sample serialiser above, I then run this test code to examine some stuff:
o = new Basic(); serialised = serializeJson(o); writeDump([serialised]); deserialised = deserializeJson(serialised); writeDump([deserialised]);
So all I'm doing is using (de)serializeJson() as a baseline to see how the functions work. here's Basic.cfc, btw:
component { }
And the test output:
array
1
SERIALISED
array
1
DESERIALISED
This is as one would expect. OK, so that "works". But now... you'll've noted I am logging the arguments each of the serialisation methods receives, as I got.
Here's the arguments passed to canSerialize():
canSerialize - struct
1
XML
My reaction to that is: "[WTH]?" Why is canSerialize() being passed the string "XML" when I'm trying to serialise an object of type Basic.cfc?
Here's the docs for canSerialize() (from the page I linked to earlier):
CanSerialize - Returns a boolean value and takes the "Accept Type" of the request as the argument. You can return true if you want the customserialzer to serialize the data to the passed argument type.
Again, back to "[WTH]?" What's the "Accept type" of the request? And what the hell has the request got to do with a call to serializeJson()? You might think that "Accept type" references some HTTP header or something, but there is no "Accept type" header in the HTTP spec (that I can find: "Hypertext Transfer Protocol -- HTTP/1.1: 14 Header Field Definitions"). There's an "Accept" header (in this case: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), and other ones like "Accept-Encoding", "Accept-Language"... but none of which contain a value of "XML". Even if there was... how would it be relevant to the question as to whether a Basic.cfc instance can be serialised? Raised as bug: 3750730.
serialize() gets more sensible arguments:
serialize - struct
1
https://www.blogger.com/nullserialize - component scribble.shared.git.blogExamples.coldfusion.CF11.customerserialiser.Basic
2
JSON
So the first is the object to serialise (which surely should be part of the question canSerialize() is supposed to ask, and the format to serialise to. Cool.
canDeserialize() is passed this:
canDeserialize - struct
1
JSON
I guess it's because it's being called from deserializeJson(), so it's legit to expect the input value is indeed JSON. Fair enough. (Note: I'm not actually passing it JSON, but that's beside the point here).
And deserialize() is passed this:
deserialize - struct
1
SERIALISED
2
JSON
3
[empty string]
The first argument is the value to work on, and the second is the type of deserialisation to do. I have no idea what the third argument is for, and it's not mentioned directly or indirectly on that docs page. So dunno what the story is there.
The next issue isn't a code-oriented one, but an implementation one: how the hell are we expected to work with this?
The only way to work here is for each function to have a long array of IF/ELSEIF statements which somehow identify each object type that is serialisable, and then return true from canSerialise(), or in the case of serialize(), go ahead and do the serialisation. So this means this one CFC needs to know about everything which can be serialised in the entire application. Talk about a failure in "separation of concerns".
You know the best way of determining if an object can be seriaslised? Ask it! Don't rely on something else needing to know. This can be achieved very easily in one of two ways:
Check to see if the object implements a "Serializable" interface, which requires a serialize() method to exist.
Or simply take the duck-typing approach: if a CFC implements a serialize() method: it can be serialised. By calling that method. Job done.
Either approach would work fine, keeps things nicely encapsulated, and I see merits in both. And either make far more sense than Adobe's approach. Which is like something from the "OO Failures Special Needs" class.
Deserialisation is trickier. Because it relies on somehow working out how to deserialise() an object. I'm not sure of the best approach here, but - again - how to deserialise something should be as close to the thing needing deserialisation as possible. IE: something in the serialised data itself which can be used to bootstrap the process.
This could simply be a matter of specifying a CFC type at a known place in the serialised data. EG: Adobe stipulates that if the serialised data is JSON, and at the top level of the JSON is a key eg: type, and the value is an extant CFC... use that CFC's deserialize() method. Or it could look for an object which contains a type and a method, or whatever. But Adobe can specify a contract there.
The only place I see a centralised CFC being relevant here is for a mechanism for handling serialised data that is neither a ColdFusion internal type, nor identifiable as above. In this case, perhaps they could provide a mechanism for a serialisation router, which basically has a bunch of routes (if/elseifs if need be) which contains logic as to how to work out how to deserialise the data. But it should not be the actual deserialiser, it should simply have the mechanism to find out how to do it. This is actually pretty much the same in operation as the deserialize() approach in the current implementation, but it doesn't need the canDeserialize() method (it can return false at the end of the routing), and it doesn't need to know about serialising. And also it's not the main mechanism to do the deserialisation, it's just the fall back if the prescribed approach hasn't been used.
TBH, this still sounds a bit jerry-built, and I'm open for better suggestions. This is probably a well-trod subject in other languages, so it might be worth looking at how the likes of Groovy, Ruby or even PHP (eek!) achieve this.
There's still another issue with the current approach. And this demonstrates that the Adobe guys don't actually work with either CFML applications or even modern websites. This approach only works for a single, stand-alone website (like how we might have done in 2001). What if I'm not in the business of building websites, but I build applications such as FW/1 or ColdBox or the like? Or any sort of "helper" application. They cannot use the current Adobe implementation of the customserializer. Why? Because the serialisation code needs to be in a website-specific CFC. There's no way for Luis to implement a custom serialiser in ColdBox (for example), and then have it work for someone using ColdBox. Because it relies on either editing Application.cfc to specify a different CFC, or editing the existing customSerializer CFC. Neither of which are very good solutions. This should have been immediately apparent to the Adobe engineer(s) implementing this stuff had they actually had any experience with modern web applications (which generally aren't just a single monolithic site, but an aggregation of various other sub applications). Equally, I know it's not a case of having thought about this and [I'm just missing something], because when I asked them the other day, at first they didn't even get what I was asking, but when I clarified were just like "oh yeah... um... err... yeah, you can't do that. We'll... have to... ah yeah". This has been raised as bug 3750731.
So I declare the intent here valid, but the implementation to be more alpha- / pre-release- quality, not release-ready.
Still: it could be easily deprecated and rework fairly easily. I've raised this as bug 3750732.
Or am I missing something?
AdamYes, you can easily add additional questions to the Lookup.WebClient.Questions Lookup to allow some additional choices. We have added quite a few additional choices, we have noticed that removing them once people have selected them causes some errors.
You can also customize the required number of questions to select when each user sets them up as well as the number required to be correct to reset the password, these options are in the System Configuration settings.
If you need multi-language versions of the questions, you will also need to modify the appropriate language resource file in the xlWebApp.war file to provide the necessary translations for the values entered into the Lookup.
Maybe you are looking for
-
Possible to Change the Order Status
Hai When i am booking the sales order the status is showing the Booked is it possible to change the Booked status according to the customer requirement .... thanks in advance M.Meenashi Sundaram
-
Progressbar.fmb, pjc, 6i forms
Developing on a 6i C/S enviroment. Windows 2000 Converting to a 6i web, then 9i web enviroment. Hp Unix I'm trying to use (for the first-time ever) a pjc to mimic the "spinning wheels" while a report status is being checked. I found reference to the
-
Configuring PE11 as external editor
I have Aperture 3.4.5 and Photoshop Elements 11.0 installed on my iMac (Mountain Lion). I have set the export preferences to launch PE11 as the external editor and set the file format to PSD 16 bit although I have tried other formats. When I go to Ph
-
Opening iCloud Control Panel causes crash.
Have uninstalled every apple product, cleaned registry and files / folders. Can't access app on pc. Just says 'iCloud has stopped working'...close program and then it shuts itself down.
-
We are new to using OSX in our newspaper production. When we receive new images, by e-mail for example, we open them up, touch them up, and save them in their proper folders. It used to be that once we saved one image to its new locations, the applic