FW: (forte-users) Copy Input parameter
Peter,
That is the behaviour that I have experienced also, so I do not have such
(anchored service object) attributes in my classes anymore but instead add
that service object attribute as an input parameter to all methods in that
class that require access via that service object attribute.
Alternatively, if access to that anchored service object is only required
in the partition that it was created then overriding the Clone method of
the class to return a NIL value in the service object attribute should
work for you.
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 05:33
To: Forte User Group
Subject: (forte-users) Copy Input parameter
Hi folks,
I have this problem where a "copy input" seems to copy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an object, say
batchproc, as the process. The batchproc has an
attribute for referencing the batchmgrso as it will
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and the
batchmgrso tries to re-submit the object from the
queue, and I use a copy input as the mechanism for
passing in the batchproc to the service object, I can
find that not only does the batchproc get cloned, but
also the batchmgrso. It caused a lot of problem and
bombed the method.
When I changes the mechanism to just input in the
method signature, everything works fine.
So is it a forte feature/bug that a copy input would
clone something so "deeply" that even a SO or archored
object would get clone too. Is there any way to avoid
it?
Regards,
Peter Sham.
=====
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected]
Peter,
That is the behaviour that I have experienced also, so I do not have such
(anchored service object) attributes in my classes anymore but instead add
that service object attribute as an input parameter to all methods in that
class that require access via that service object attribute.
Alternatively, if access to that anchored service object is only required
in the partition that it was created then overriding the Clone method of
the class to return a NIL value in the service object attribute should
work for you.
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 05:33
To: Forte User Group
Subject: (forte-users) Copy Input parameter
Hi folks,
I have this problem where a "copy input" seems to copy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an object, say
batchproc, as the process. The batchproc has an
attribute for referencing the batchmgrso as it will
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and the
batchmgrso tries to re-submit the object from the
queue, and I use a copy input as the mechanism for
passing in the batchproc to the service object, I can
find that not only does the batchproc get cloned, but
also the batchmgrso. It caused a lot of problem and
bombed the method.
When I changes the mechanism to just input in the
method signature, everything works fine.
So is it a forte feature/bug that a copy input would
clone something so "deeply" that even a SO or archored
object would get clone too. Is there any way to avoid
it?
Regards,
Peter Sham.
=====
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected]
Similar Messages
-
RE: (forte-users) Copy Input parameter
Peter,
Just a quick response before I prepare a code sample for you.
Unfortunately, we pay for our sins as a true cloning operation has to take
into account the (potentially) recursive nature of an object graph and
effectively has to do the equivalent of serialising an object graph (as in
parameter passing to remote methods) without going into an infinite loop
when the object graph recurses back into itself.
The Forte runtime does this quite nicely but if you wish to change its
default behaviour, it's a bit of hard work but it's achievable.
So you need to decide. Is it worth it?
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 07:20
To: EMMI, Mario
Cc: '[email protected]'
Subject: RE: (forte-users) Copy Input parameter
Hi,
Interesting solution!
Just to clarify further. How exactly would you
over-write the clone method. New the object and then
clone all the attributes of the existing object to the
new object, excluding whatever attribute you think is
appropriate?
Regards,
Peter Sham.
--- "EMMI, Mario" <[email protected]> wrote:
Peter,
That is the behaviour that I have experienced also,
so I do not have such
(anchored service object) attributes in my classes
anymore but instead add
that service object attribute as an input parameter
to all methods in that
class that require access via that service object
attribute.
Alternatively, if access to that anchored service
object is only required in
the partition that it was created then overriding
the Clone method of the
class to return a NIL value in the service object
attribute should work for
you.
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 05:33
To: Forte User Group
Subject: (forte-users) Copy Input parameter
Hi folks,
I have this problem where a "copy input" seems tocopy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an object,say
batchproc, as the process. The batchproc has an
attribute for referencing the batchmgrso as itwill
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and the
batchmgrso tries to re-submit the object from the
queue, and I use a copy input as the mechanism for
passing in the batchproc to the service object, Ican
find that not only does the batchproc get cloned,but
also the batchmgrso. It caused a lot of problemand
bombed the method.
When I changes the mechanism to just input in the
method signature, everything works fine.
So is it a forte feature/bug that a copy inputwould
clone something so "deeply" that even a SO orarchored
object would get clone too. Is there any way toavoid
it?
Regards,
Peter Sham.
=====
For the archives, go to:
http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. Tounsubscribe, send in a new
email the word: 'Unsubscribe' to:
[email protected]
=====
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.comMario,
Well. There're 2 ways that I can do it. Avoid copy
input as much as possible ( in fact, I hate copy input
) or code my own clone method.
Coding my own clone method should be a better
solution. So if you have time, please please descibe
it.
Thanks for all the troubles. Regards,
Peter Sham.
--- "EMMI, Mario" <[email protected]> wrote:
Peter,
Just a quick response before I prepare a code sample
for you.
Unfortunately, we pay for our sins as a true cloning
operation has to take
into account the (potentially) recursive nature of
an object graph and
effectively has to do the equivalent of serialising
an object graph (as in
parameter passing to remote methods) without going
into an infinite loop
when the object graph recurses back into itself.
The Forte runtime does this quite nicely but if you
wish to change its
default behaviour, it's a bit of hard work but it's
achievable.
So you need to decide. Is it worth it?
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 07:20
To: EMMI, Mario
Cc: '[email protected]'
Subject: RE: (forte-users) Copy Input parameter
Hi,
Interesting solution!
Just to clarify further. How exactly would you
over-write the clone method. New the object andthen
clone all the attributes of the existing object tothe
new object, excluding whatever attribute you thinkis
appropriate?
Regards,
Peter Sham.
--- "EMMI, Mario" <[email protected]> wrote:
Peter,
That is the behaviour that I have experienced
also,
so I do not have such
(anchored service object) attributes in myclasses
anymore but instead add
that service object attribute as an inputparameter
to all methods in that
class that require access via that serviceobject
attribute.
Alternatively, if access to that anchoredservice
object is only required in
the partition that it was created thenoverriding
the Clone method of the
class to return a NIL value in the serviceobject
attribute should work for
you.
Mario Emmi
British Aerospace Australia
-----Original Message-----
From: Peter Sham [SMTP:[email protected]]
Sent: Thursday, 28 October 1999 05:33
To: Forte User Group
Subject: (forte-users) Copy Input parameter
Hi folks,
I have this problem where a "copy input" seems
to
copy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an
object,
say
batchproc, as the process. The batchproc has
an
attribute for referencing the batchmgrso as itwill
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and
the
batchmgrso tries to re-submit the object fromthe
queue, and I use a copy input as the mechanismfor
passing in the batchproc to the serviceobject, I
can
find that not only does the batchproc get
cloned,
but
also the batchmgrso. It caused a lot of
problem
and
bombed the method.
When I changes the mechanism to just input in
the
method signature, everything works fine.
So is it a forte feature/bug that a copy inputwould
clone something so "deeply" that even a SO orarchored
object would get clone too. Is there any way
to
avoid
it?
Regards,
Peter Sham.
=====
For the archives, go to:
http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. Tounsubscribe, send in a new
email the word: 'Unsubscribe' to:
[email protected]
=====
===== -
Hi Jagadish,
The OLE error code of 0x80020003 translates to "Member not found." This may
indicate that the parameter is not properly defined as a Parameter field in
the Crystal Report you're using.
Additionally, the date format you're using is wrong. Crystal requires that
you pass a date as "Date(yyyy, mm, dd)." Your example, then, should read:
l_tdParam : TextData = New();
l_tdParam.SetValue('Date(2000, 03, 15)');
l_CrystalRepObj.PutParameterFields(0, l_tdParam.Value);
I hope this helps.
-Katie
Katie Tierney
Akili Systems Group
601 Jefferson, Suite 3975
Houston, Texas 77002
Office: (713) 655-1400
Cell: (409) 255-1643
"The bitterness of poor quality remains long after the sweetness of low
price is forgotten" --Larry Anderson
-----Original Message-----
From: Jagadish_Kumarnacre.com [mailto:Jagadish_Kumarnacre.com]
Sent: Wednesday, March 15, 2000 9:11 PM
To: Katie Tierney; kamranaminyahoo.com
Subject: RE: (forte-users) Any inputs on PutFormulas(...) method of
Crystal Report's ActiveX object
Hi Katie,
I am thankful for your time and effort.
I have a problem here. I did exactly the way you have suggested, but I get
this
exception.
SYSTEM ERROR: Error during Invoke; status code: -2147352573(0x80020003)
Class: OLEException with ReasonCode: OLE_ER_RESOURCE
Last TOOL statement: method DebugState.RaiseException
The parameter I want to set is a date type. This is the only parameter in
the
report.
First trial:
l_tdParam : TextData = New();
l_tdParam.SetValue('03/15/2000');
l_CrystalRepObj.PutParameterFields(0, l_tdParam.Value);
Second Trail:
l_dtdParam : DateTimeData = New();
l_dtdParam.SetCurrent(DR_DAY);
l_CrystalRepObj.PutParameterFields(0, l_dtdParam.TextValue.Value);
Do you think I am going wrong somewhere here. Please suggest.
Once again, I am thankful for your time and effort.
Regards,
Jagadish K Kumar
May I suggest:
1. Talk to Forte Consulting and get ReportKit. It's inexpensive, and the
Forte Consultant can help you get it set up quickly. It's a great product.
2. The following code has worked for me in the past (I have no way of
testing it now, but think it should still work):
// ptd_Parameter_Array is an ARRAY of TextData containing the
// VALUES to be placed in the parameter fields.
// Since Crystal Reports uses a zero-based array numbering
// scheme, we need to set up a counter and set its initial
// value to 0.
li_Counter : integer = 0;
for eachParam in ptd_Parameter_Array do
self.PutParameterFields(index = li_counter, param2 =
eachParam.Value);
li_Counter = li_counter + 1;
end for;
The VariantVoidResult is NIL by default, and you shouldn't need to worry
about it at all. It's the result that the Crystal OCX sends back to Forte.
The Index starts at 0, and continues to the number of parameters - 1.
The Param2 value is the string that contains the actual parameter value.
For example, if I have defined a Crystal parameter called "Country," then I
would send "USA" as the string value for param2.
I hope this helps (and I STRONGLY suggest ReportKit).
Regards,
-Katie
Katie Tierney
Akili Systems Group
601 Jefferson, Suite 3975
Houston, Texas 77002
Office: (713) 655-1400
Cell: (409) 255-1643
"The bitterness of poor quality remains long after the sweetness of low
price is forgotten" --Larry Anderson
-----Original Message-----
From: Jagadish_Kumarnacre.com [mailto:Jagadish_Kumarnacre.com]
Sent: Wednesday, March 15, 2000 9:43 AM
To: kamranaminyahoo.com
Subject: (forte-users) Any inputs on PutFormulas(...) method of Crystal
Report's ActiveX object
Hi,
Could someone give me inputs on how to use PutFormulas(index: i2, param2:
string, _VariantVoidResult = NIL) method of Crystal ActiveX object.
I want to use this method to modify Crystal Report formulas. I would like to
know
1. index parameter - what is the domain, or expected values to this
parameter
2. param2 parameter - How to formulate this?; a sample template please;
3. _VariantVoidResult parameter - what is the significance of this
parameter?
A working example will help me a lot.
Thanks in advance.
Jagadish K KumarHi Katie,
I am thankful for your time and effort.
I have a problem here. I did exactly the way you have suggested, but I get this
exception.
SYSTEM ERROR: Error during Invoke; status code: -2147352573(0x80020003)
Class: OLEException with ReasonCode: OLE_ER_RESOURCE
Last TOOL statement: method DebugState.RaiseException
The parameter I want to set is a date type. This is the only parameter in the
report.
First trial:
l_tdParam : TextData = New();
l_tdParam.SetValue('03/15/2000');
l_CrystalRepObj.PutParameterFields(0, l_tdParam.Value);
Second Trail:
l_dtdParam : DateTimeData = New();
l_dtdParam.SetCurrent(DR_DAY);
l_CrystalRepObj.PutParameterFields(0, l_dtdParam.TextValue.Value);
Do you think I am going wrong somewhere here. Please suggest.
Once again, I am thankful for your time and effort.
Regards,
Jagadish K Kumar
May I suggest:
1. Talk to Forte Consulting and get ReportKit. It's inexpensive, and the
Forte Consultant can help you get it set up quickly. It's a great product.
2. The following code has worked for me in the past (I have no way of
testing it now, but think it should still work):
// ptd_Parameter_Array is an ARRAY of TextData containing the
// VALUES to be placed in the parameter fields.
// Since Crystal Reports uses a zero-based array numbering
// scheme, we need to set up a counter and set its initial
// value to 0.
li_Counter : integer = 0;
for eachParam in ptd_Parameter_Array do
self.PutParameterFields(index = li_counter, param2 =
eachParam.Value);
li_Counter = li_counter + 1;
end for;
The VariantVoidResult is NIL by default, and you shouldn't need to worry
about it at all. It's the result that the Crystal OCX sends back to Forte.
The Index starts at 0, and continues to the number of parameters - 1.
The Param2 value is the string that contains the actual parameter value.
For example, if I have defined a Crystal parameter called "Country," then I
would send "USA" as the string value for param2.
I hope this helps (and I STRONGLY suggest ReportKit).
Regards,
-Katie
Katie Tierney
Akili Systems Group
601 Jefferson, Suite 3975
Houston, Texas 77002
Office: (713) 655-1400
Cell: (409) 255-1643
"The bitterness of poor quality remains long after the sweetness of low
price is forgotten" --Larry Anderson
-----Original Message-----
From: Jagadish_Kumarnacre.com [mailto:Jagadish_Kumarnacre.com]
Sent: Wednesday, March 15, 2000 9:43 AM
To: kamranaminyahoo.com
Subject: (forte-users) Any inputs on PutFormulas(...) method of Crystal
Report's ActiveX object
Hi,
Could someone give me inputs on how to use PutFormulas(index: i2, param2:
string, _VariantVoidResult = NIL) method of Crystal ActiveX object.
I want to use this method to modify Crystal Report formulas. I would like to
know
1. index parameter - what is the domain, or expected values to this
parameter
2. param2 parameter - How to formulate this?; a sample template please;
3. _VariantVoidResult parameter - what is the significance of this
parameter?
A working example will help me a lot.
Thanks in advance.
Jagadish K Kumar -
Hi folks,
I have this problem where a "copy input" seems to copy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an object, say
batchproc, as the process. The batchproc has an
attribute for referencing the batchmgrso as it will
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and the
batchmgrso tries to re-submit the object from the
queue, and I use a copy input as the mechanism for
passing in the batchproc to the service object, I can
find that not only does the batchproc get cloned, but
also the batchmgrso. It caused a lot of problem and
bombed the method.
When I changes the mechanism to just input in the
method signature, everything works fine.
So is it a forte feature/bug that a copy input would
clone something so "deeply" that even a SO or archored
object would get clone too. Is there any way to avoid
it?
Regards,
Peter Sham.
=====Hi folks,
I have this problem where a "copy input" seems to copy
the service object too.
The case is that I have a service object, say
batchmgrso, for batch processing and an object, say
batchproc, as the process. The batchproc has an
attribute for referencing the batchmgrso as it will
create some other process and submit it to the
batchmgrso.
The problem is whenever a batchproc fails and the
batchmgrso tries to re-submit the object from the
queue, and I use a copy input as the mechanism for
passing in the batchproc to the service object, I can
find that not only does the batchproc get cloned, but
also the batchmgrso. It caused a lot of problem and
bombed the method.
When I changes the mechanism to just input in the
method signature, everything works fine.
So is it a forte feature/bug that a copy input would
clone something so "deeply" that even a SO or archored
object would get clone too. Is there any way to avoid
it?
Regards,
Peter Sham.
===== -
How can I pass dynamic value as a user input parameter in discoverer?
Hi,
I have a requirement for a discoverer report like this: The report will display only details for Suppliers that have expired (or soon to be) Insurance details. That is the Expiration Date is less than or equal to the day the report is being run plus any days specified in the Number of Days in the Future Parameter.
The sample code as:
SELECT s.segment1 vendor_number
,s.vendor_name
,flv1.meaning classification
,pca.certificate_number
,pca.certifying_agency
,pca.expiration_date
,flv2.meaning status
FROM ap_suppliers s
,pos_bus_class_attr pca
,fnd_lookup_values flv1
,fnd_lookup_values flv2
WHERE pca.vendor_id = s.vendor_id
AND flv1.lookup_code = pca.lookup_code
AND flv1.lookup_type = pca.lookup_type
AND flv2.lookup_code = pca.class_status
AND flv2.lookup_type = 'POS_BUS_CLASS_STATUSES'
AND pca.expiration_date <= trunc(sysdate) + <No. of Days in the Future>
order by pca.expiration_date asc
Now the parameter is Number of Days in the Future (Enter the number days in the future to extract the data. This will default to 0).
Is it possible in discoverer to do so as in query i do that like a condition as pca.expiration_date <= trunc(sysdate) + <No. of Days in the Future>.
How can I pass <No. of Days in the Future> as a user input parameter in discoverer?
Please help.Hi,
All you need to do is to create the condition in the discoverer instead of in the query.
Create a custom folder containing the following sq (note that i removed the condition)l:
SELECT s.segment1 vendor_number
,s.vendor_name
,flv1.meaning classification
,pca.certificate_number
,pca.certifying_agency
,pca.expiration_date
,flv2.meaning status
FROM ap_suppliers s
,pos_bus_class_attr pca
,fnd_lookup_values flv1
,fnd_lookup_values flv2
WHERE pca.vendor_id = s.vendor_id
AND flv1.lookup_code = pca.lookup_code
AND flv1.lookup_type = pca.lookup_type
AND flv2.lookup_code = pca.class_status
AND flv2.lookup_type = 'POS_BUS_CLASS_STATUSES'
Then create a discoverer report using this folder using all fields.
Create a new calculation as (use this exact syntax):
Sysdate + :No_of_Days_in_the_Future
Create a new condition:
pca.expiration_date <= <your calculation>
To complete it add a sort as you did in the SQL.
That's it.
Tamir -
RE: (forte-users) appdist copy from VMS to NT question...
Well, there are some graphic FTP clients for windows that allow
you to get files from FTP-servers using simple drag and drop.
Most of them even support the option of selecting a directory
and dragging it, with all its subdirectories, to your local drive
with a single mouse action.
The only problem might be with binary vs. text files. The appdist
directory has both filetypes. Getting text files as if they were
binary files may cause problems. Getting binary files as if they
were text certainly will cause problems. So, either get the
whole tree binary and hope for the best. Or get each file indi-
vidually and set the correct bin or asc setting. Or use a tool
that is smart enough to see if a file is binary or text and hope
it doesn't make any mistakes.
Pascal Rottier
STP - MSS Support & Coordination Group
Philip Morris Europe
e-mail: [email protected]
Phone: +49 (0)89-72472530
+++++++++++++++++++++++++++++++++++
Origin IT-services
Desktop Business Solutions Rotterdam
e-mail: [email protected]
Phone: +31 (0)10-2428100
+++++++++++++++++++++++++++++++++++
Don't meddle in the affairs of dragons
'cause you're crunchy and taste good with ketchup
-----Original Message-----
From: Haben, Dirk [SMTP:[email protected]]
Sent: Wednesday, December 08, 1999 6:32 AM
To: 'Soapbox Forte Users'
Subject: (forte-users) appdist copy from VMS to NT question ...
G'day Folxs
Does anyone here have a simple way to copy a whole appdist tree for myapp1
say from VMS to NT? I have created a new environment on a NT box and want
to
copy down all our application distributions.
eg:
On OpenVMS machine vmsbox1 the directory tree and files
vmsbox1::forte_root:[appdist.aenv_myapp_cl3...]*.*;
should go to NT machine ntbox1
[ntbox1] d:\temp\myapp\cl3\...
Even just to d:\temp\aenv_myapp_cl3\... will do.
ftp doesn't seem to do the trick here. Of cause I could write some routine
to put/get file by file - but before I do all that I thought I ask around
if
it's already been done.
Thanks,
Dirk
PS: Needless to say we still develop and makedist on VMS - for now (see
Bulletin 388)!
PPS: No I haven't forgotten about [appdist.aenv.myapp1]*.ace
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected]Well, there are some graphic FTP clients for windows that allow
you to get files from FTP-servers using simple drag and drop.
Most of them even support the option of selecting a directory
and dragging it, with all its subdirectories, to your local drive
with a single mouse action.
The only problem might be with binary vs. text files. The appdist
directory has both filetypes. Getting text files as if they were
binary files may cause problems. Getting binary files as if they
were text certainly will cause problems. So, either get the
whole tree binary and hope for the best. Or get each file indi-
vidually and set the correct bin or asc setting. Or use a tool
that is smart enough to see if a file is binary or text and hope
it doesn't make any mistakes.
Pascal Rottier
STP - MSS Support & Coordination Group
Philip Morris Europe
e-mail: [email protected]
Phone: +49 (0)89-72472530
+++++++++++++++++++++++++++++++++++
Origin IT-services
Desktop Business Solutions Rotterdam
e-mail: [email protected]
Phone: +31 (0)10-2428100
+++++++++++++++++++++++++++++++++++
Don't meddle in the affairs of dragons
'cause you're crunchy and taste good with ketchup
-----Original Message-----
From: Haben, Dirk [SMTP:[email protected]]
Sent: Wednesday, December 08, 1999 6:32 AM
To: 'Soapbox Forte Users'
Subject: (forte-users) appdist copy from VMS to NT question ...
G'day Folxs
Does anyone here have a simple way to copy a whole appdist tree for myapp1
say from VMS to NT? I have created a new environment on a NT box and want
to
copy down all our application distributions.
eg:
On OpenVMS machine vmsbox1 the directory tree and files
vmsbox1::forte_root:[appdist.aenv_myapp_cl3...]*.*;
should go to NT machine ntbox1
[ntbox1] d:\temp\myapp\cl3\...
Even just to d:\temp\aenv_myapp_cl3\... will do.
ftp doesn't seem to do the trick here. Of cause I could write some routine
to put/get file by file - but before I do all that I thought I ask around
if
it's already been done.
Thanks,
Dirk
PS: Needless to say we still develop and makedist on VMS - for now (see
Bulletin 388)!
PPS: No I haven't forgotten about [appdist.aenv.myapp1]*.ace
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected] -
GP: Input Parameter dependent on User
Hi Experts,
is it possible to set an Input Parameter (Type boolean) dependent on the User (or Group)?
I want two types of Usergroupes, if the user is member of the first group it should return TRUE, and the second group should return FALSE.
Dont know how to implement it with Guided Procedures.
Thanks for your help!Hi Abdul,
thanks for your reply, i try it with a java class, as you see here
Get Group Members with GP API
i stumbled over a few problems, pherhaps you can have a look -
Passing input parameter to User Defined Procedures in ODI
Hi
I have to develop a procedure with an update query as follows
Update Rec_Count set status as 'Y' where TableName = 'Name of the table'
Here the 'name of the table' should be sent as input parameter while executing the package and this has 9 values.
Kindly help me resolve this issue.
ThanksHi,
Create a variable
eg :- VarName
and your query should be
Update Rec_Count set status as 'Y' where TableName = '#VarName'
Steps in package:
step 1 :-
refresh the variable ,
or assign the variable while executing the package.
Step 2
Your procedure
This will take the variable value dynamically while executing
Regards,
Rathish
Edited by: Rathish on Aug 18, 2009 3:38 PM -
Re: (forte-users) Communication Pbs between a NT client& a HP 11 load-b
Hi,
I think you misunderstand the anatomy of an Array object. The size of an
Array containing 63 elements can never be 1638 bytes when each element
contains a 100 byte string.
If you use the sizeof function, you'll only get the combined size of all
attributes of the object. But if an object contains attributes that are
objects themselves (e.g. TextData), then only the size of the pointer to
this object is counted. Not the object itself.
Array and LargeArray offer the same functionality but use different
algorithms. LargeArray is better suited for large lists and Array is better
suited for small lists. Array is faster, but requirs more memory. LargeArray
is slower, but requires less memory.
Array reserves a piece of memory that holds 63 pointers to objects. Within
these 63 positions, you can read and write randomly. When you add a 64th
object, Array locates a new piece of memory that holds 127 pointers. The
first 63 pointers are copied to this new location and the original location
is free for garbage collection. When you add a 128th object, Array locates a
new piece of memory that holds 255 pointers. etc.
Check if you're network communication time is closer to what you expect when
you have 127 elements in your list. And then check if performance drops
again when you have 128 elements.
Also, take into account that Forte is not capable of measuring time in very
small units. 80 ms and 150 ms might really just be 3 ms apart. Also, garbage
collection might kick in at any moment, slowing down performance. If you
have a multi-user OS, it might suddenly start doing maintenance tasks, that
reduce the amount of processor time available for your partition, either the
partition that sends the array, or the partition that receives it.
Sending an object requires the object to be serialised, send and
deserialised. The partition that invoked the Send() method blocks during
this whole process. If deserialising at the other end takes longer, then the
process simply waits longer.
-----Original Message-----
From: Olivier Brousseau [SMTP:Olivier.Brousseausema.fr]
Sent: Thursday, April 06, 2000 7:05 PM
To: kamranaminyahoo.com
Cc: Eric ABECASSIS; Giulio CALIENDO
Subject: (forte-users) Communication Pbs between a NT client & a HP
11 load-balanced server : 100ms to transfer 1600 bytes on a 10Mbits link.
Hi,
we have done a very small application to instrument & verify the
communication capabilities of our soft & network :
1. a win NT client that generates an array of object ( nb of object is a
parameter ), and that send it to a server.
2. a HP11 server, that contains a load-balanced SO ( with only one
replicate ). The prototype of the SO entry point, which does nothing, is
as
follows :
void send( input GenericArray of Element );
And Element is a class that contain a DataValue attribute with a 100 bytes
string.
Between the client & server, we have a 10 Mbits link ( it has been
verified
using FTP ). From 1 object sent, to 63 objects, ( size of the array with
63
objects = 1638 bytes ), everything is OK. The elapsed time is 10
milliseconds.
With 64 objects ( size of the array = 1666 bytes ), the elapsed time is
100
milliseconds ( in fact for one iteration, it's 80 msec, for the next one,
150 msec, and then it's 80 msec, etc... ).
All the results with more objects than 63 are awfull.
Has anyone enccountered such a problem ?
Can anyone advise ?
Thanks,
olivier
Nota. Both server & client are built from Forté 3.0.M
O. Brousseau
Architecture & Performance Team
Sema Group France ( DTS )
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
RE: (forte-users) 3J= 3M new to me error
Hi Thomas,
Thanks for your email but I think it will be interesting for Brenda not me.
It is exactly what I have expected from Forte Support: detailed information
about bugs and workarounds. But what I cannot understand is that #53398 was
released without any information about possible reasons for this problem or
suggested workarounds. My first reaction after reading this bugreport was to
open a new case at CallCenter to get more information about it. Please
release more information with your bug reports !
Regards
Zenon Adamek
Information Services
Senior Programmer Analyst
Tel: 905 712-1084 ext. 3628
Fax: 905 712-6709
E-mail: zadamekpurolator.com
-----Original Message-----
From: Thomas Degen - Sun Germany Forte Tools - Bonn
[SMTP:thomas.degensun.com]
Sent: Wednesday, September 27, 2000 9:49 AM
To: Adamek, Zenon
Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
Subject: RE: (forte-users) 3J=>3M new to me error
Hi Zenon,
bug #53398 is not a bug which will likely get fixed, it's an informational
bugreport.
You might see an errorstack like Brenda has reported (and described in
informational
bugreport #53398) probably when you are doing something illegal that is
possible
via Forte Tool but Forte is not trapping it for performance reasons. Hence
you will see
the error coming from your illegal operation only at runtime, probably
only
while
running interpreted in the Forte IDE, but in worst case it might be even a
segmentation
violation.
Technotes 12448 'Sudden client partition crashes at runtime' and 11225
'Don't reparent
mapped Widgets between UserWindows at runtime' explain this matter . See
attached.
But maybe Brenda is much more experiencing a problem as described by Forte
Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
control'
that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
Good Luck and Best Regards !
BTW: I've logged bug #53398, so I've felt responsible to explain its real
background.
Thomas
Thomas Degen
Sun Microsystems - Forte Tools
Forte CTE & Sustaining Group
Technical Support Germany
tel.:+49.228/91499-50
MailTo:thomas.degensun.com
Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
control
SCENARIO:
Getting some unusual interpreter errors that result in an error stating
that
the workspace has been set to read only. Please see Enclosures for the
two
most common error stacks that have been encountered. The abbreviated
versions of the errors are:
- Can't read record (record size = -1)
- Id in index does not match id in record header in data file
- Recursive deserialization attempted.
- Unknown Mark type in deserialization
- Could not read record (64,74615) from repository data file.
Header
is corrupt.
These errors can be happening in either the development environment when
running from one of the development workshops, or with the deployed
application.
The bug outlined in this Technote may be the culprit if the errors above
are
seen when running a client on Windows NT or Motif and the user interface
incorporates ActiveX controls or ListView/TreeView widgets.
CAUSE:
Basically what is happening is that in rare circumstances Forte may invoke
a
nested copy of the interpreter while the first interpreter has yielded.
This
is not a problem in and of itself, but in the case where the original
interpreter was in the middle of a repository fetch when it yielded, and
the second interpreter needs to fetch code as well, we will get one of the
errors listed above, depending on the exact timing. The reason for the
errors is that the repository code at this level is thread-safe but not
re-entrant. It is protected by a mutex that is already owned by the
current task. Which, given the scenario outlined here, where the two
interpreters are running inside of the same task, results in the nested
interpreter being allowed to change data out from under the first.
While for every fetch one or more calls to WindowSystem.Yield will be made
(this is there to prevent the semblance of system lock-up on Win 3.1,
where
Yield is the only way other applications can be allowed to run), there is
a parameter which controls how often to actually yield, which by default
is
set to one out of every 100 calls. This is the reason the problem is
intermittent--you need a yield to occur during a repository fetch
which starts another interpreter which also needs to fetch code from
disk.
The reason this has only surfaced recently is that the nested interpreter
scenario can only happen in 2 cases that we know of:
- ActiveX controls which respond to events/Windows messages
- Outline fields/ListViews with column(s) mapped to virtual
attributes
In all other normal cases, the yield can process the message (typically a
paint message) without starting another interpreter, so regardless of
whether
the first interpreter yielded during a repository operation or not, there
is
no conflict.
SOLUTION:
The workaround is to prevent yields altogether by setting the
FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
environment. This should have no detrimental effects since the yield code
is in place solely for Windows 3.1x clients.
ERROR STACK 1
SYSTEM ERROR: Because of a prior error, your workspace was set to
read-only to
prevent the application from attempting to write to the repository. The
repository and work you have saved to the repository are safe. If your
workspace
contains unsaved work, you may use the following procedure to save this
work.
First, export the changed components. Then, shut down and restart this
application and reopen this workspace in read-write mode. Finally, import
the
changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 695]
Detected at: qqrp_Session::GetObjectById
Last TOOL statement: method EFWindowController.EFEventLoop
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
The remainder of the Error Manager stack is:
SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
(fetch
bitmask is 0x20). Your workspace is now read-only to prevent the
application
from attempting to write to the repository. The repository and work you
have
saved to the repository are safe. If your workspace contains unsaved work,
you
may use the following procedure to save this work. First, export the
changed
components. Then, shut down and restart this application and reopen this
workspace in read-write mode. Finally, import the changed components and
save
your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 61]
Detected at: qqrp_LogicalSession::MaterializeObject
Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
SYSTEM ERROR: Unknown Mark type in deserialization.
Class: qqsp_ImplementationException
Error #: [1101, 34]
Detected at: qqrp_DeSerializeObject::ProcessHdr
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
ERROR STACK 2
SYSTEM ERROR: A serious error has occurred in Repository
(c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
Notify
your repository administrator.
Class: qqsp_ImplementationException
Error #: [1101, 198]
Detected at: qqrp_Repository::Fetch
Last TOOL statement: method
SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
Error Time: Wed Dec 03 10:27:22
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
taskId =
[769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
"ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
SYSTEM ERROR: Could not read record (64,74615) from repository data file.
Header is corrupt.
Class: qqsp_ImplementationException
Error #: [1106, 612]
Detected at: qqbt_BtreeAccess::FetchDataFileRecord
Error Time: Wed Dec 03 10:27:22
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
taskId =
[769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
"ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
Technote 11225 Don't reparent mapped Widgets between UserWindows at
runtime
It is sometimes tempting to unparent a widget from one UserWindow and
reparent
it into another at runtime. However, this can cause crashes if the widget
(or
its decendants) are "mapped" to data. Here's why...
Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
(DF1)
which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
mapped to
a scalar Integer. At compile time, every mapped attribute is internally
assigned
a "Map ID" (a small integer) which is used to tie the Widget to its
corresponding attribute. These Map IDs are used by the Widget to look up a
pointer to their data in a "Map" which is maintained by the UserWindow.
Each
UserWindow is assumed be to independent of the others, so there is nothing
wrong
with Widgets in different UserWindows being assigned the same Map IDs.
In
this
case, let's assume that DF1 and RL2 both got assigned the same Map ID of
3. No
problem so far, since each lives in a separate UserWindow with a separate
map.
Now suppose at runtime the application "detaches" or unparents DF1 from
its
UserWindow and reparents it somewhere into UW2. When it comes time for DF1
to
paint itself the Display System it must ask the Runtime System for the
value of
DF1's mapped attribute. To do that it says "give me the value of the
TextData
for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
ID is
3". When the runtime system goes to do this it expects to find a TextData
in
this "slot" of the map, but instead it picks up the integer which is
mapped to
RL2. At best this leads to bad data being returned; more likely you get a
segfault and a crash.
If DF1 was not a mapped attribute (say, a Rectangle) there would be no
problem
because there is no data mapped to a Rectangle. If instead of moving DF1
you
created a brand new DataField on the fly there would be no problem,
because the
dynamic DataField would not have any Map ID and so couldn't conflict with
any
IDs in UW2.
So how do you solve this problem? This is exactly what Nested Windows are
all
about. While you can't move DF1 into the middle of UW2, you can nest
UW1.
This
works because UW1 brings its map with it, and when you access DF1 it knows
to
look up its value in UW1's map.
UserWindows are intended to be the "unit of compilabilty" that can be
nested
inside other UserWindows. It is dangerous to "transplant" anything from
inside
one UserWindow into another at runtime.
(Note that you can't avoid this problem by cloning DF1 because the MapID
gets
copied along with it, and the clone will fail in the same way.)
Further details explained in related technote 12448 'Sudden client
partition
crashes at runtime.'
Technote 12448 Sudden client partition crashes at runtime
Scenario : You have two UserWindows, A and B. When Window A starts up, it
instantiates an instance of B and reparents some component of B into A's
window
hierarchy.
This is not allowed and almost always leads to an error at best or at
worse a
segmentation fault.
Here's why :
When you compile a UserWindow in Forte, each "mapped attribute" (whether a
form
element or menu element) is assigned an internal ID which represents an
offset into
that UserWindow's table of mapped attributes. This offset is only valid
in the
context of the UserWindow in which it was compiled. If you detach a
FieldWidget or
MenuWidget from one compiled Window ("tmpMenu" for example) and then
parent
into another compiled window ("tmpWindow") the internal ID comes with it.
When Forte tries to make use of that copied widget it uses the ID as an
offset
into tmpWindow's table of mapped attributes. But that copied offset is
meaningless in the context of tmpWindow's table, so you get some kind off
error.
In this case it found that the data type of the variable in the slot
wasn't
what
was expected. But you might even index off the end of the table and get a
segmentation fault.
There is nothing to prevent you from dynamically creating menu items and
adding
them to a window at runtime; that will work fine. Although of course you
can't
access them via mapped attributes, since those can only be created at
compile time.
But you are not allowed to reparent a widget from one compiled UserWindow
into
the hierarchy of another.
More information may be found in technote 11225 'Don't reparent mapped
Widgets
between UserWindows at runtime'.
Possible errorstacks seen at runtime instead of a complete crash or
segmentation
violation while you are illegally reparenting a widget or menuitem between
windows
at runtime:
Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
SYSTEM ERROR: Bad parameter at location 3 in method
qqrt_MapClassAccess::ProcessSubjectData.
Class: qqsp_Exception
Error #: [1001, 381]
Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
Error Time: Wed Aug 09 13:03:57
Exception occurred (locally) on partition "testproject_CL0_Client",
(partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
taskId =
[D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
"FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
Hi,
It is the unfixed defect 53398. Please contact Forte support.
Zenon
-----Original Message-----
From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
Sent: Tuesday, September 26, 2000 1:15 PM
To: Forte User group
Subject: (forte-users) 3J=>3M new to me error
Hi,
We are in the process of going from 3J1 to 3.0.M.2, and I am getting
this error that I am unfamiliar with on a GUI that works fine in 3J.
It
does not happen all the time, and I have been unable to establish the
pattern that kicks it off. Has anyone seen this before?
PS- this error is not occurring in the deployed (non-compiled) app,but
when I am running locally from my workspace.
SYSTEM ERROR: Bad parameter at location 6 in method
qqrt_MapClassAccess::ProcessSubjectData.
Class: qqsp_Exception
Error #: [1001, 381]
Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Can't find scope 20070 for a class.
Class: qqsp_Exception
Error #: [201, 11]
Detected at: qqlo_ClassTableLoadScope at 1
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Because of a prior error, your workspace was set to
read-only to prevent the application from attempting to write to the repository.
The repository and work you have saved to the repository are safe. If
your
workspace contains unsaved work, you may use the following procedure
to save this work. First, export the changed components. Then, shut down and
restart this application and reopen this workspace in read-write mode.
Finally, import the changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 695]
Detected at: qqrp_Session::IsDistributed
Last TOOL statement: method PPMeasWin.
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Internal Error attempting to deserialize element
(64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
prevent
the application from attempting to write to the repository. The
repository
and work you have saved to the repository are safe. If your workspace
contains unsaved work, you may use the following procedure to savethis
work.
First, export the changed components. Then, shut down and restart this
application and reopen this workspace in read-write mode. Finally, import the
changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 61]
Detected at: qqrp_LogicalSession::MaterializeObject
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
Error #: [301, 231]
Detected at: qqsp_DeSerializeDriver::Run at 1
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in anew
email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.comHi Thomas,
Thanks for your email but I think it will be interesting for Brenda not me.
It is exactly what I have expected from Forte Support: detailed information
about bugs and workarounds. But what I cannot understand is that #53398 was
released without any information about possible reasons for this problem or
suggested workarounds. My first reaction after reading this bugreport was to
open a new case at CallCenter to get more information about it. Please
release more information with your bug reports !
Regards
Zenon Adamek
Information Services
Senior Programmer Analyst
Tel: 905 712-1084 ext. 3628
Fax: 905 712-6709
E-mail: zadamekpurolator.com
-----Original Message-----
From: Thomas Degen - Sun Germany Forte Tools - Bonn
[SMTP:thomas.degensun.com]
Sent: Wednesday, September 27, 2000 9:49 AM
To: Adamek, Zenon
Cc: 'Brenda Cumming'; Forte-userslists.xpedior.com
Subject: RE: (forte-users) 3J=>3M new to me error
Hi Zenon,
bug #53398 is not a bug which will likely get fixed, it's an informational
bugreport.
You might see an errorstack like Brenda has reported (and described in
informational
bugreport #53398) probably when you are doing something illegal that is
possible
via Forte Tool but Forte is not trapping it for performance reasons. Hence
you will see
the error coming from your illegal operation only at runtime, probably
only
while
running interpreted in the Forte IDE, but in worst case it might be even a
segmentation
violation.
Technotes 12448 'Sudden client partition crashes at runtime' and 11225
'Don't reparent
mapped Widgets between UserWindows at runtime' explain this matter . See
attached.
But maybe Brenda is much more experiencing a problem as described by Forte
Technote 11398 'Read Only Workspace Errors using ListViews or ActiveX
control'
that might get easily resolved via setting of FORTE_YIELD_THROTTLE=0.
Good Luck and Best Regards !
BTW: I've logged bug #53398, so I've felt responsible to explain its real
background.
Thomas
Thomas Degen
Sun Microsystems - Forte Tools
Forte CTE & Sustaining Group
Technical Support Germany
tel.:+49.228/91499-50
MailTo:thomas.degensun.com
Technote 11398 Read Only Workspace Errors using ListViews or ActiveX
control
SCENARIO:
Getting some unusual interpreter errors that result in an error stating
that
the workspace has been set to read only. Please see Enclosures for the
two
most common error stacks that have been encountered. The abbreviated
versions of the errors are:
- Can't read record (record size = -1)
- Id in index does not match id in record header in data file
- Recursive deserialization attempted.
- Unknown Mark type in deserialization
- Could not read record (64,74615) from repository data file.
Header
is corrupt.
These errors can be happening in either the development environment when
running from one of the development workshops, or with the deployed
application.
The bug outlined in this Technote may be the culprit if the errors above
are
seen when running a client on Windows NT or Motif and the user interface
incorporates ActiveX controls or ListView/TreeView widgets.
CAUSE:
Basically what is happening is that in rare circumstances Forte may invoke
a
nested copy of the interpreter while the first interpreter has yielded.
This
is not a problem in and of itself, but in the case where the original
interpreter was in the middle of a repository fetch when it yielded, and
the second interpreter needs to fetch code as well, we will get one of the
errors listed above, depending on the exact timing. The reason for the
errors is that the repository code at this level is thread-safe but not
re-entrant. It is protected by a mutex that is already owned by the
current task. Which, given the scenario outlined here, where the two
interpreters are running inside of the same task, results in the nested
interpreter being allowed to change data out from under the first.
While for every fetch one or more calls to WindowSystem.Yield will be made
(this is there to prevent the semblance of system lock-up on Win 3.1,
where
Yield is the only way other applications can be allowed to run), there is
a parameter which controls how often to actually yield, which by default
is
set to one out of every 100 calls. This is the reason the problem is
intermittent--you need a yield to occur during a repository fetch
which starts another interpreter which also needs to fetch code from
disk.
The reason this has only surfaced recently is that the nested interpreter
scenario can only happen in 2 cases that we know of:
- ActiveX controls which respond to events/Windows messages
- Outline fields/ListViews with column(s) mapped to virtual
attributes
In all other normal cases, the yield can process the message (typically a
paint message) without starting another interpreter, so regardless of
whether
the first interpreter yielded during a repository operation or not, there
is
no conflict.
SOLUTION:
The workaround is to prevent yields altogether by setting the
FORTE_YIELD_THROTTLE environment variable equal to 0 in the client's
environment. This should have no detrimental effects since the yield code
is in place solely for Windows 3.1x clients.
ERROR STACK 1
SYSTEM ERROR: Because of a prior error, your workspace was set to
read-only to
prevent the application from attempting to write to the repository. The
repository and work you have saved to the repository are safe. If your
workspace
contains unsaved work, you may use the following procedure to save this
work.
First, export the changed components. Then, shut down and restart this
application and reopen this workspace in read-write mode. Finally, import
the
changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 695]
Detected at: qqrp_Session::GetObjectById
Last TOOL statement: method EFWindowController.EFEventLoop
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
The remainder of the Error Manager stack is:
SYSTEM ERROR: Internal Error attempting to deserialize element (64,67470)
(fetch
bitmask is 0x20). Your workspace is now read-only to prevent the
application
from attempting to write to the repository. The repository and work you
have
saved to the repository are safe. If your workspace contains unsaved work,
you
may use the following procedure to save this work. First, export the
changed
components. Then, shut down and restart this application and reopen this
workspace in read-write mode. Finally, import the changed components and
save
your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 61]
Detected at: qqrp_LogicalSession::MaterializeObject
Last TOOL statement: method EFTabManagerNew.EFNoteBookHandler
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
SYSTEM ERROR: Unknown Mark type in deserialization.
Class: qqsp_ImplementationException
Error #: [1101, 34]
Detected at: qqrp_DeSerializeObject::ProcessHdr
Error Time: Tue Nov 18 15:58:47
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1,
taskId =
[7EFAE060-4AFA-11D1-A1C1-1FDC8A99AA77:0x446:0x1.23]) in application
"ConPlus_GUI_cl0", pid 147 on node ISD060 in environment EdgeTest.
ERROR STACK 2
SYSTEM ERROR: A serious error has occurred in Repository
(c:\PROGRA~1\CSSPTEST\conplu0). Corrective action may be necessary.
Notify
your repository administrator.
Class: qqsp_ImplementationException
Error #: [1101, 198]
Detected at: qqrp_Repository::Fetch
Last TOOL statement: method
SalesDevelopment_NWC.DEVNotifyofTabSetCurrent
Error Time: Wed Dec 03 10:27:22
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
taskId =
[769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
"ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
SYSTEM ERROR: Could not read record (64,74615) from repository data file.
Header is corrupt.
Class: qqsp_ImplementationException
Error #: [1106, 612]
Detected at: qqbt_BtreeAccess::FetchDataFileRecord
Error Time: Wed Dec 03 10:27:22
Exception occurred (locally) on partition "ConPlus_GUI_cl0_Client",
(partitionId = 769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1,
taskId =
[769D4310-6B88-11D1-84FD-65BF87C8AA77:0x121:0x1.22]) in application
"ConPlus_GUI_cl0", pid 172 on node ISD42 in environment Edge.
Technote 11225 Don't reparent mapped Widgets between UserWindows at
runtime
It is sometimes tempting to unparent a widget from one UserWindow and
reparent
it into another at runtime. However, this can cause crashes if the widget
(or
its decendants) are "mapped" to data. Here's why...
Suppose you have two UserWindows, UW1 and UW2. UW1 contains a DataField
(DF1)
which is mapped to a TextData. UW2 contains a RadioList (RL2) which is
mapped to
a scalar Integer. At compile time, every mapped attribute is internally
assigned
a "Map ID" (a small integer) which is used to tie the Widget to its
corresponding attribute. These Map IDs are used by the Widget to look up a
pointer to their data in a "Map" which is maintained by the UserWindow.
Each
UserWindow is assumed be to independent of the others, so there is nothing
wrong
with Widgets in different UserWindows being assigned the same Map IDs.
In
this
case, let's assume that DF1 and RL2 both got assigned the same Map ID of
3. No
problem so far, since each lives in a separate UserWindow with a separate
map.
Now suppose at runtime the application "detaches" or unparents DF1 from
its
UserWindow and reparents it somewhere into UW2. When it comes time for DF1
to
paint itself the Display System it must ask the Runtime System for the
value of
DF1's mapped attribute. To do that it says "give me the value of the
TextData
for DF1. You'll find it in the Map for this UserWindow (UW1), and its Map
ID is
3". When the runtime system goes to do this it expects to find a TextData
in
this "slot" of the map, but instead it picks up the integer which is
mapped to
RL2. At best this leads to bad data being returned; more likely you get a
segfault and a crash.
If DF1 was not a mapped attribute (say, a Rectangle) there would be no
problem
because there is no data mapped to a Rectangle. If instead of moving DF1
you
created a brand new DataField on the fly there would be no problem,
because the
dynamic DataField would not have any Map ID and so couldn't conflict with
any
IDs in UW2.
So how do you solve this problem? This is exactly what Nested Windows are
all
about. While you can't move DF1 into the middle of UW2, you can nest
UW1.
This
works because UW1 brings its map with it, and when you access DF1 it knows
to
look up its value in UW1's map.
UserWindows are intended to be the "unit of compilabilty" that can be
nested
inside other UserWindows. It is dangerous to "transplant" anything from
inside
one UserWindow into another at runtime.
(Note that you can't avoid this problem by cloning DF1 because the MapID
gets
copied along with it, and the clone will fail in the same way.)
Further details explained in related technote 12448 'Sudden client
partition
crashes at runtime.'
Technote 12448 Sudden client partition crashes at runtime
Scenario : You have two UserWindows, A and B. When Window A starts up, it
instantiates an instance of B and reparents some component of B into A's
window
hierarchy.
This is not allowed and almost always leads to an error at best or at
worse a
segmentation fault.
Here's why :
When you compile a UserWindow in Forte, each "mapped attribute" (whether a
form
element or menu element) is assigned an internal ID which represents an
offset into
that UserWindow's table of mapped attributes. This offset is only valid
in the
context of the UserWindow in which it was compiled. If you detach a
FieldWidget or
MenuWidget from one compiled Window ("tmpMenu" for example) and then
parent
into another compiled window ("tmpWindow") the internal ID comes with it.
When Forte tries to make use of that copied widget it uses the ID as an
offset
into tmpWindow's table of mapped attributes. But that copied offset is
meaningless in the context of tmpWindow's table, so you get some kind off
error.
In this case it found that the data type of the variable in the slot
wasn't
what
was expected. But you might even index off the end of the table and get a
segmentation fault.
There is nothing to prevent you from dynamically creating menu items and
adding
them to a window at runtime; that will work fine. Although of course you
can't
access them via mapped attributes, since those can only be created at
compile time.
But you are not allowed to reparent a widget from one compiled UserWindow
into
the hierarchy of another.
More information may be found in technote 11225 'Don't reparent mapped
Widgets
between UserWindows at runtime'.
Possible errorstacks seen at runtime instead of a complete crash or
segmentation
violation while you are illegally reparenting a widget or menuitem between
windows
at runtime:
Map::SetSubjectData: Invalid conversion from map type 0 to subject type 22
SYSTEM ERROR: Bad parameter at location 3 in method
qqrt_MapClassAccess::ProcessSubjectData.
Class: qqsp_Exception
Error #: [1001, 381]
Detected at: qqrt_MapClassAccess::ProcessSubjectData at 3
Error Time: Wed Aug 09 13:03:57
Exception occurred (locally) on partition "testproject_CL0_Client",
(partitionId = D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd,
taskId =
[D4914A10-36C1-11D4-91B3-419AA33BAA77:0x208:0xd.68]) in application
"FTLaunch_cl0", pid 672 on node ONEWAY in environment Audi3M2Env.
At 13:14 26.09.00 -0400, Adamek, Zenon wrote:
Hi,
It is the unfixed defect 53398. Please contact Forte support.
Zenon
-----Original Message-----
From: Brenda Cumming [SMTP:brenda_cummingtranscanada.com]
Sent: Tuesday, September 26, 2000 1:15 PM
To: Forte User group
Subject: (forte-users) 3J=>3M new to me error
Hi,
We are in the process of going from 3J1 to 3.0.M.2, and I am getting
this error that I am unfamiliar with on a GUI that works fine in 3J.
It
does not happen all the time, and I have been unable to establish the
pattern that kicks it off. Has anyone seen this before?
PS- this error is not occurring in the deployed (non-compiled) app,but
when I am running locally from my workspace.
SYSTEM ERROR: Bad parameter at location 6 in method
qqrt_MapClassAccess::ProcessSubjectData.
Class: qqsp_Exception
Error #: [1001, 381]
Detected at: qqrt_MapClassAccess::ProcessSubjectData at 6
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2,
taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Can't find scope 20070 for a class.
Class: qqsp_Exception
Error #: [201, 11]
Detected at: qqlo_ClassTableLoadScope at 1
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Because of a prior error, your workspace was set to
read-only to prevent the application from attempting to write to the repository.
The repository and work you have saved to the repository are safe. If
your
workspace contains unsaved work, you may use the following procedure
to save this work. First, export the changed components. Then, shut down and
restart this application and reopen this workspace in read-write mode.
Finally, import the changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 695]
Detected at: qqrp_Session::IsDistributed
Last TOOL statement: method PPMeasWin.
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Internal Error attempting to deserialize element
(64,120684) (fetch bitmask is 0x20). Your workspace is now read-onlyto
prevent
the application from attempting to write to the repository. The
repository
and work you have saved to the repository are safe. If your workspace
contains unsaved work, you may use the following procedure to savethis
work.
First, export the changed components. Then, shut down and restart this
application and reopen this workspace in read-write mode. Finally, import the
changed components and save your workspace.
Class: qqrp_RepResourceException
Error #: [1101, 61]
Detected at: qqrp_LogicalSession::MaterializeObject
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition
"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
SYSTEM ERROR: Recursive Deserialization attempted, Internal Error!
Class: qqsp_UsageException with ReasonCode: SP_ER_INVALIDSTATE
Error #: [301, 231]
Detected at: qqsp_DeSerializeDriver::Run at 1
Error Time: Wed Sep 20 14:32:54
Exception occurred (locally) on partition"ABSDevtStartUp_CL0_Client",
(partitionId = 36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2, taskId =
[36172000-5DA8-11D4-B1F0-14015EDAAA77:0x2da:0x2.25]) in
application
"Forte_cl0", pid 93 on node T5621 in environment AbisDMEnv.
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in anew
email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
Re: (forte-users) Delays in data transfer..server-to-client
I would try using DOM (distributed object manager) traces. trc:do:20 will
give you information on each messages sent from and received by the
partition. Levels are 1, 2, 5, 7, and 8, and trc:do:*:8 is very
verbose. trc:do:20:1 may tell you what you want to know. trc:do:1:1 will
give you a basic 1-line-per DOM event trace that may also be all you need.
Communications manager traces will tell you about network and socket-level
activity, but not about the sizes of the messages themselves. In addition,
the operating system makes decisions about physical packet size and
send/receive timing, so CM activities only generally map to actual network
activity.
-tdc
iPlanet Integration Server Engineering
At 09:24 AM 5/1/01 -0700, you wrote:
All,
We are experiencing delays in object transfer between server and client. The
delays are longer with large objects (a single object with an array of objects
that reflect the rows returned in a database) than small (ie: 10 rows vs 400).
Does anyone have any (actual) experience using the various Forte' flags in
order
to show the actual size of the object/packets being passed between the server
and client?
We are using input/output between client and server, input on all the SO's
within a partition. Response on the server side is good, roughly 6 seconds or
so. The round trip fare however from the time the client makes the SO call to
the time that it completes is in the 25-30 second range, leaving roughly 20-25
seconds unaccounted for. I have brought in the network guys who are
requesting
the data size and packet information. I did not see what I am looking for
using
the trc:cm:*:4 and trc:cm:*:8 flags. I will be trying the trc:cm:*:10
flag, but
Forte' indicates that this flag is very verbose, the systems group hates
it when
I use up all of THEIR disk space!
Any ideas would be appreciated as always.Jeff,
If the object you are passing does not require changes made to it in the
server partition to be returned, pass the object as copy input (pass by
value not reference). If it is necessary to pass the object as input, try
to pass only the attributes that are required to the remote partition
instead of the whole object.
Input/Output is normaly used with scalar variables. When a scalar is passed
to a remote partition, if the value is changed in that partition, the value
is not returned to the calling partition unless Input/Output is used.
Input/Output should not be used for object type parameters, if you need to
pass a reference, use Input only. If you can pass by value, use Copy Input.
You will notice a huge difference in performance changing from Input to Copy
input when passing large objects.
Hope this helps,
Travis Foote
Fortedeveloper.com Inc.
----- Original Message -----
From: "Jeff Bennett" <[email protected]>
To: <[email protected]>
Sent: Tuesday, May 01, 2001 9:24 AM
Subject: (forte-users) Delays in data transfer.. server-to-client
>
All,
We are experiencing delays in object transfer between server and client.The
delays are longer with large objects (a single object with an array ofobjects
that reflect the rows returned in a database) than small (ie: 10 rows vs400).
>
Does anyone have any (actual) experience using the various Forte' flags inorder
to show the actual size of the object/packets being passed between theserver
and client?
We are using input/output between client and server, input on all the SO's
within a partition. Response on the server side is good, roughly 6seconds or
so. The round trip fare however from the time the client makes the SOcall to
the time that it completes is in the 25-30 second range, leaving roughly20-25
seconds unaccounted for. I have brought in the network guys who arerequesting
the data size and packet information. I did not see what I am looking forusing
the trc:cm:*:4 and trc:cm:*:8 flags. I will be trying the trc:cm:*:10flag, but
Forte' indicates that this flag is very verbose, the systems group hatesit when
I use up all of THEIR disk space!
Any ideas would be appreciated as always.
-jeff
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: [email protected] -
Trying to get the input parameter of a web service fxn based on table value
Hello--
I am new to ADF and Jdev 11g (I am a forms developer). I had created a web service from a pl/sql stored db package. I can successfully execute a function with an input parameter from ADF Faces.
Instead of the input parameter being enterable by the user, I would like it to be based on a selected ADF table column value. How would I correlate the selected row column value as the function input parameter?
I played with an ADF output text based on the ADF table column with the PartialTriggers value set to the ADF table...which updates the output text based on the column selected. Do I use some sort of partial trigger on the input parameter?
From a forms point of view, I am looking for the "Copy Value from Item" property :)Hi,
Not sure if this would help you.
But if your table is bound to a ViewObject, it will be easier to get the current selection.
Supose your table is bound to iterator1.
In your backBean code:
DCBindingContainer dcBindings = (DCBindingContainer)getBindings();
DCIteratorBinding iterator =dcBindings.findIteratorBinding("iterator1");
Row row = iterator.getCurrentRow();
Object selectedValue = row.getAttarbute(<value of the column you are looking for>);
public BindingContainer getBindings() throws Exception {
try {
if (this.bindings == null) {
FacesContext fc = FacesContext.getCurrentInstance();
this.bindings =
(BindingContainer)fc.getApplication().evaluateExpressionGet(fc,
"#{bindings}",
BindingContainer.class);
return this.bindings;
} catch (Exception ex) {
displayMessage("Error occurred. Please contact your IT Adminstrator.");
return this.bindings;
Let me know if this helps.
-Makrand -
Re: (forte-users) Forte and CORBA question
Hi,
The discarding the Java variable that references a distributed Forte object
doesn't cause that the distributed object will be reclaimed. In Forte client
you can use ReleaseDistReference() of the current partition (task.part) to
free the remote object. For Java client, you can implement the following
solution:
- define a method ReleaseMyObject() in the SO you are using to get the proxy
to the dist. object. As parameter for it use something that can identify
your object (attribute).
- your SO has an array or hashtable with your distributed objects, every new
object is added to it.
- in the implementation of ReleaseMyObject() find the object to release in
the array and call ReleaseDistReference() for it,
- from the Java client, call the ReleaseMyObject() for the object that is
not more needed.
Regards,
Zenon Adamek
----- Original Message -----
From: Joseph Mirwald <jomirweb.de>
To: Dave Ortman <dortmanyahoo.com>; 'Forte User Forum'
<forte-userslists.xpedior.com>
Sent: Wednesday, March 07, 2001 3:58 PM
Subject: Re: (forte-users) Forte and CORBA question
Hello Dave,
do you use a copy return or copy parameters in this method ?
If not, then maybe Forte is unable to garbage-collect this object because
it is forever
a proxy which only the server-partition may be able to drop it from memory
(object=NIL).
Try this and let us know what happens.
Hope this helps
Joseph Mirwald
At 11:49 07.03.01 -0800, Dave Ortman wrote:
We're attempting to use a Java client to access a
Forte server. In doing such, we've experienced a
problem which I hoped somebody could shed some light
on.
We've had a Java client calling Forte service objects
and passing Forte objects back and forth as CORBA
structs with no problem. However, we have experienced
some problem obtaining and using remote references to
distributed objects from the Java client.
The problem is memory utilization. Each time I obtain
a reference to a new object, the memory utilization on
the Forte server jumps up quite a bit (around 100k per
object on an NT box). Eventually, if I fetch enough
objects, the server will crash due to lack of memory.
It seems that Forte never reclaims the memory, even
though I'm not using (and don't have a handle to) this
remote objects.
The objects are very small. In fact, I created a test
Forte SO with one method, getObject(); which returns a
distributed object with a single attribute. I then
have a Java client access the getObject() method
repeatedly - discarding the reference to the object
after each iteration. After a short while, the box
will come down.
Any thoughts?
Thanks in advance,
-Dave Ortman
--- "Epari, Madhusudhan" <meparioxhp.com> wrote:
Hi All,
Following error occurs consistently on a router
partition for every call to
the service object but the partition doesn't die or
crash. I tried bumping
up the partition memory too. Any thoughts on why
it's happening?
Thanks in advance,
Madhu
SYSTEM ERROR: Failed to connect or lost connection
to the
environment manager
at FORTE_NS_ADDRESS = <Unknown>. Check that the
environment
manager is
installed at that location. If it is, then check
to be sure that
there are
enough system resources available to support this
partition.
Class: qqsp_SystemResourceException
Error #: [601, 201]
Detected at: qqdo_NsClient::FindObject at 1
Error Time: Wed Feb 21 09:30:56
Exception occurred (locally) on partition
"CSA_cl0_Part2-router",
(partitionId =
C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c:0x1,
taskId =
[C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c.8]) in
application
"MWRouting_cl1", pid 18937 on node forted1 in
environment
frtedev.
SYSTEM ERROR: Attempt to send from a partition
(C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c:0x1)
that no
longer exists.
Class: qqsp_DistAccessException
Error #: [601, 111]
Detected at: qqdo_PartitionMgr::SendMsg at
1
Error Time: Wed Feb 21 09:30:56
Distributed method called:
qqdo_NsServerProxy.FindObject
(object name
Unnamed) from partition
"CSA_cl0_Part2-router",
(partitionId =
C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c:0x1,
taskId =
[C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c.8]) in
application
"MWRouting_cl1", pid 18937 on node
forted1 in environment
frtedev
Exception occurred (locally) on partition
"CSA_cl0_Part2-router",
(partitionId =
C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c:0x1,
taskId =
[C61609A0-8270-11D3-88A9-F4D005D0AA77:0x10c5c.8])
in
application "MWRouting_cl1", pid 18937 on
node forted1 in
environment
frtedev.
LbRouter::FindMembers - CAUGHT EXCEPTION attaching
members from
For the archives, go to:
http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To
unsubscribe, send in a new
email the word: 'Unsubscribe' to:
forte-users-requestlists.xpedior.com
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com--
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.comWhy not this:
while myText.moveToString(' ') do
myText.ReplaceRange('-', myText.Offset, myText.Offset+1);
end while;
or if you prefer verbosity:
while myText.moveToString(source=' ') do
myText.ReplaceRange(source='-', startOffset=myText.Offset,
endOffset=myText.Offset+1);
end while;
-----Original Message-----
From: FatchJeBAM.com [mailto:FatchJeBAM.com]
Sent: Wednesday, January 12, 2000 2:51 PM
To: Troy.Burnsvacationclub.com; kamranaminyahoo.com
Subject: RE: (forte-users) search and replace within a TextData
How about this?? May have to play with start/end on ReplaceRange as I
didn't really test this
Anybody got a better way??
-- replace space with underscore
For x in 1 to myTextdata.LengthToEnd() do
If myTextData.IsSpace() then
MyTextdata.ReplaceRange('_'. Startoffset=myTextdata.offset,
endoffset=myTextdata.offset+1);
End if;
MyTextdata.MoveNext;
End for;
Jerry Fatcheric
-----Original Message-----
From: Burns, Troy [mailto:Troy.Burnsvacationclub.com]
Sent: Wednesday, January 12, 2000 9:40 AM
To: kamranaminyahoo.com
Subject: (forte-users) search and replace within a
TextData
Hello all,
I need to search within a textdata object, replacing all
occurrances of a
space
with another character. Can you give a quick code example
of how I would do
this?
Thanks in advance,
Troy
Troy Burns
Marriott Vacation Club Intl.
E-mail: troy.burnsvacationclub.com
Phone: (941) 688-7700 ext. 4408
For the archives, go to: http://lists.sageit.com/forte-users
and use
the login: forte and the password: archive. To unsubscribe,
send in a new
email the word: 'Unsubscribe' to:
forte-users-requestlists.sageit.com
For the archives, go to: http://lists.sageit.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.sageit.com -
Re: (forte-users) loadbalancing a service object
Hi,
If you need to share the values between your So, you can find a sample on
http://perso.club-internet.fr/dnguyen
It was designed to show how to manage shared states between replicates using
fail over. It could also be used for load-bancing. A better way should be to
manage the names of service objects within Forte (with the application,
project name and compatibility level), but through the NameServer.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
http://perso.club-internet.fr/dnguyen/
Xiao, Menghua a écrit:
Hello,
I tried to loadbalance a service object that has both methods and
attributes. The first copy of the service object works fine. However, all
the attributes of the second copy of the service object are nil when a
client try to use this copy. How can I make those two copies exactly the
same?
I am new to Forte. Any input will be greatly appreciated.
Menghua Xiao
Regional Transportation District,
Denver, Colorado, USA
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.comHi,
If you need to share the values between your So, you can find a sample on
http://perso.club-internet.fr/dnguyen
It was designed to show how to manage shared states between replicates using
fail over. It could also be used for load-bancing. A better way should be to
manage the names of service objects within Forte (with the application,
project name and compatibility level), but through the NameServer.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
http://perso.club-internet.fr/dnguyen/
Xiao, Menghua a écrit:
Hello,
I tried to loadbalance a service object that has both methods and
attributes. The first copy of the service object works fine. However, all
the attributes of the second copy of the service object are nil when a
client try to use this copy. How can I make those two copies exactly the
same?
I am new to Forte. Any input will be greatly appreciated.
Menghua Xiao
Regional Transportation District,
Denver, Colorado, USA
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
Re: (forte-users) RV: (forte-users) DecimalNullable &ArrayField
Jorge,
Here are couple of steps you may want to double-check:
1. Set the desired scale (for e.g., say scale = 10) on the window's
attribute (may be in Init() method).
2. May be you want to mask the input to the DataField (for e.g., say Input
Mask = Float)
Make sure you don't overwrite the attribute (the object itself) with
another object with a different scale.
3. If what you see on the window is what does not get to the database, then
you may want to verify parameter passing.
4. More importantly, make sure the DecimalNullable object in the SQL has
the same scale as that on the window.
Hope this helps.
Jagadish
"Jorge
Bellido" To: <forte-userslists.xpedior.com>
<jorge.bellid cc:
oeam.es> Fax to:
Subject: (forte-users) RV: (forte-users)
03/13/2001 DecimalNullable & ArrayField
10:23
Another example,
If I have saved the data 55446.023, when I go to the window and I write
0. then the data saved is 0.046
Regards,
Jorge.
----- Original Message -----
From: Jorge Bellido
To: forte-userslists.xpedior.com
Sent: Tuesday, March 13, 2001 12:01 PM
Subject: (forte-users) DecimalNullable & ArrayField
Hello!
I am very grateful to you for solutions given to me some days ago. I
decided manage DecimalNullable, but now I have a problem:
I have one ArrayField (called MyList") in a Window, with Mapped Type "
Array of MyClass". "MyClass" has one attribute called Cost" with
type DecimalNullable and in the Init I have "Cost = new ( scale = 10 );".
In the Window the ArrayField have a DataField called "Cost" with
MappedType DecimalNullable, and Input Mask Float.
Well, when I go to this Window, for example is showed "23.12345". If I
select this number with the mouse and I write for example "8", with the
debugger I see that MyList.Cost is "8.0". If I continue writting one
comma, with the debugger I see that MyList.Cost is "8.02345", and I don't
know why Forte write the decimals of the old number, but only when I write
the comma. If I write "8.2" the result is OK.
Anybody knows some solution?
Thank you very much,
Jorge.Hi Jean-Paul,
As described in the Technote 10981 some Forte programs (Nodemanager and
router) handle correct the high-file descriptor-use problem. It is possible
that Forte interpreter do it correct too.
Zenon
-----Original Message-----
From: Jean-Paul Gabrielli [SMTP:Jean-Paul.Gabriellisema.fr]
Sent: Monday, September 25, 2000 12:11 PM
To: Adamek, Zenon
Cc: Forte-userslists.xpedior.com
Subject: RE: (forte-users) [UNIX] "Too many open files" 3.0.M2
question
Actually, the stuff works in interpreted mode.
It's only when having the server partition compiled that this happen.
j-p
-----Message d'origine-----
De: Adamek, Zenon [mailto:ZAdamekpurolator.com]
Date: lundi 25 septembre 2000 17:13
À: 'Jean-Paul.Gabriellisema.fr'
Cc: Forte-userslists.xpedior.com
Objet: RE: (forte-users) [UNIX] "Too many open files" 3.0.M2 question
see Technote 10981
-----Original Message-----
From: Jean-Paul Gabrielli [SMTP:Jean-Paul.Gabriellisema.fr]
Sent: Monday, September 25, 2000 11:02 AM
To: zeForte-users
Subject: (forte-users) [UNIX] "Too many open files" 3.0.M2 question
Hi,
running a server partition that reads a configuration file,
and apparently doen't close it after, I have that exception:
SYSTEM ERROR: System Error: Too many open files, opening '....'with mode
'r'
Class: qqos_FileResourceException
1) Is there such a limit, or does this rely only on the OS one ?
2) How is this error not trapped, as I only got itinteractively, whereas
my server log does a exception trap/segmentation fault,
thanlks
j-p
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe,send in a new
email the word: 'Unsubscribe' to:
forte-users-requestlists.xpedior.com
>
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com
Maybe you are looking for
-
HT1414 how can i find the dates of the latest backup for iphone and ipad
i cannot seem to find the dates of last backup for my iphone or ipad.. what buttons will lead me to the answer
-
I now have 2 user accounts, but only want one.
so i stupidly created an account on my new macbook pro when i first turned it on. the next day, i decided to use the Migration Assistant to drag over my files and software from my old laptop. the computer set up a new account based on how my old lapt
-
ANN: SAP GUI for Java 7.00 rev 5 available for download
Hi all, SAP GUI for Java 7.00 rev 5 is now available at <b>http://service.sap.com/sapgui-java</b>. In case you are not registered on service.sap.com, you can alternatively download it from ftp://ftp.sap.com/pub/sapgui/java/700r5. This revision solves
-
Problmes with file content conversion
Hi, I have a working ftp file adapter. When I now try to switch this adapter to file content conversion, the adapter doesn't work. It doesn't even tries to connect to the ftp-server. Is it possible, that I have forget to fill out some information in
-
Problem in submitting data while refresh in web application
Hi all, I have problem in submitting data while refreshing the page. In my application voucher number is generated automatically and as soon as number is genereated voucher detail is inserted in database for newly generated voucher number. Both of th