RE: (forte-users) MAPI
Hi Pascal,
The easest way to interface the MAPI on NT is to use OLE Active Messaging
Library (Olemsg32.dll). Interfaces, methods etc. will be automatically
generated by Olegen.
Regards,
Zenon
-----Original Message-----
From: Rottier, Pascal [SMTP:Rottier.Pascalpmintl.ch]
Sent: Tuesday, October 31, 2000 5:24 AM
To: 'Forte Users'
Subject: (forte-users) MAPI
Hi all,
Does anyone have a reference or example for interfacing with MAPI on NT?
I'm also looking for a way to "browse" an unknown DLL to see what
functions
it contains. Forte documentation tells you how to map TOOL to C-functions,
but assumes you already know the full signature of the C-functions.
Thanks,
Pascal Rottier
Origin Nederland (BAS/West End User Computing)
Tel. +31 (0)10-2661223
Fax. +31 (0)10-2661199
E-mail: Pascal.Rottiernl.origin-it.com
++++++++++++++++++++++++++++
Philip Morris (Afd. MIS)
Tel. +31 (0)164-295149
Fax. +31 (0)164-294444
E-mail: Rottier.Pascalpmintl.ch
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
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
Similar Messages
-
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) Fusion for the VAR
Hi,
It is a good idea. In fact, I think that how Forte is
going to integrate her own suite of app. too. ( I
kind of recall that there is a speech on this topic in
Forum ).
However, as Forte will most likely goes toward Java, I
would suggest that you take into account the
abstraction on Conductor ( which is frankly an event
broker ) and Fusion ( which handles the XML mapping )
too. In doing so, you can save guard your investment
on the design without binding tightly with FORTE and I
bet there will be tons of event broker or XML parser
in the future market.
On the other hand, this integration by Fusion would be
perfect for a perfect world. But, in this imperfect
world, it would be hard to do cross-checking between
apps in Fusion.
In the old days, we repulicate data or do file
transfer to integrate apps. In doing so, we also
build-in all the cross-checking procedure / reports.
In the case of Fusion, is there such a safety net to
save guard data integrity. Can I identify a lost
event and trace back to find out whether it is a app.
problem or Conductor problem?
I think the customer would surely like to know.
Regards,
Peter Sham.
--- "Thomas Mercer-Hursh, Ph.D."
<[email protected]> wrote:
Fusion has been positioned as an EAI tool, something
at which it appears to
be very, very good, but in recent months I have been
thinking about its
possible role as an architectural tool for those of
us who build large,
multi-application suites of applications. Having
been tossing some of
these ideas around the halls at Harrison Street, I
thought I would try some
of them on this audience as well to see what
reaction I got.
This concept is based on the context that one has
multiple interacting
applications which are loosely coupled, or at least
which should be. E.g.,
an order processing application may need credit
status information from an
accounts receivable application and may generate
invoices which then need
to be tracked for payment by that application, but
the connections between
these applications are specific, limited, and
readily enumerable. Mind
you, people don't always build their applications so
cleanly modularized,
but I think we all agree these days that they should
be.
The idea is to provide each application with a
specific API, which it may
currently have only indirectly. I.e., today one
might simply have calls
directly from one application to another, but one
would gather all these
links together and define an API, probably in XML
which covered all of the
necessary communciations between applications.
These would then be used to
build a Fusion Proxy and one would build the
necessary Conductor processes
to handle the communications which previously might
have been made directly
between applications. There is probably some
performance loss in this
process, but many of these interfaces are not
performance intensive and my
bet is that if the whole Fusion concept has adequate
performance for the
purposes for which it is being primarily marketed,
then it has the
performance for this sort of usage.
One would get several advantages from this
structure:
1) Interapplication communications would be handled
by a Conductor process
and thus be much more readily configurable than any
hard-coded link.
2) One would gain the ability to unplug one's own
application and plug in a
customer's application when the customer insisted on
using something else.
3) The discipline of working in this structure would
insure clean boundries
between applications, which is not only sound
design, but promotes the
flexibility of the overall suite.
4) Those with untransitioned legacy applications
would have a framework
that would allow a mixture of new and old
applications to co-exist, thus
providing them with a transition strategy until the
full product line was
converted.
Note that I am assuming that one would want to build
the individual
applications so that they also used Conductor for
managing their business
process logic, but that seems to me to be an
independent decision from this
one.
So, comments?
Any downsides?
Any added benefits I haven't covered here?
Are there many out there that would benefit from
this approach or just a few?
Is anyone doing anything like this?
Note that the one downside I have found so far is
that Fusion licensing,
independent of the Conductor aspect, is based on the
number of proxies and
so someone like CI who has 15 or more applications
in a typical site is
going to have 15 or more proxies. My bet is that
this can be handled once
it is clear that use of Fusion by a VAR for
integrating own applications is
not the same use as by an end-user integrating
arbitrary multiple applications.
=========================================================================
Thomas Mercer-Hursh, Ph.D email:
[email protected]
Computing Integrity, Inc. sales:
510-233-9329
550 Casey Drive - Cypress Point support:
510-233-9327
Point Richmond, CA 94801-3751 fax:
510-233-6950
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]
=====Yes, they do & one page is 1KB page. We use the same instrument to check
memory usage & to send alerts in our production system.
Thanks.
Suraj
-----Original Message-----
From: Epari, Madhusudhan [mailto:[email protected]]
Sent: Monday, May 14, 2001 2:37 PM
To: 'Saraf, Suraj'; 'Forte User Forum'
Subject: RE: (forte-users) Instrument for memory used in the partition
Thanks all for the response. I observed "Allocated Pages" instrument doesn't
change as and when memory usage by the partition changes. I was trying to
find a way to measure the actual memory (specifically in bytes or KBs).
Thanks,
Madhu
-----Original Message-----
From: Saraf, Suraj [mailto:[email protected]]
Sent: Thursday, May 10, 2001 12:46 PM
To: 'Epari, Madhusudhan'; 'Forte User Forum'
Subject: RE: (forte-users) Instrument for memory used in the partition
Hello,
I think you can use 'OperatingSystem' service agent & check 'AllocatedPages'
instrument to see how many memory pages are used. You can compare that with
your maximum allocation & send alerts depending on that. Thanks.
Suraj
-----Original Message-----
From: Epari, Madhusudhan [mailto:[email protected]]
Sent: Thursday, May 10, 2001 11:15 AM
To: 'Forte User Forum'
Subject: (forte-users) Instrument for memory used in the partition
Hello Everyone,
Is there an instrument to track the memory used in the partition at a given
point of time. I have a requirement where an alert has to be generated in
the environment when partition uses all its available memory.
Thanks in advance,
Madhu
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] -
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] -
RE: (forte-users) Call to the load-balanced SO not throughrouter
We never call an SO from within an SO. Instead we do the following :
MySO is mapped to MySOclass.
MySOclass is a facade which has an attribute for every Policy Manager
related to this SO.
Each Policy manager is instanciated in MySOclass.
Each Policy manager has an attribute called Parent.
Parent is defined by MySOclass to be self.
If two Policy managers need to work together we invoke methods via the
parent attribute :
Example
I have a partition for Enrolments.
It has three Policy Managers within it
a Students Policy Manager (with a Add, Delete, Get methods)
a Courses Policy Manager (with a Add, Delete, Get methods).
an Enrolments Policy Manager (with a Add, Delete, Get methods).
To enable this partition we have defined :
EnrolmentsSO (environment visible, message duration) with the EnrolmentsMgr
class as its related class.
The EnrolmentsMgr class has the following methods and attributes :
Methods :
AddStudent
AddCourse
AddEnrolment
GetStudent
GetCourse
GetEnrolment
DeleteStudent
DeleteCourse
DeleteEnrolment
All of these methods do a one line return statement, simply passing the
method invocation to
the appropriate Policy Manager. For example AddStudent would say
Return theStudentPM.AddStudent(pInStudentParams : pInStudentParams)
: pOutStudentParams
In the Init method for the EnrolmentsMgr we instanciate the following
attributes :
theStudentPM (which is typed to the StudentPM class)
theCoursePM (which is typed to the CoursePM class)
theEnrolmentsPM (which is typed to the EnrolmentsPM class)
Also in the Init method we set an attribute (called parent) on each
PM to the value of Self.
Then when one PM needs to invoke a method on another PM we simply do :
For example in the theEnrolmentPM.GetEnrolment method we need to get
Students and Courses
thus we code :
Parent.GetStudent(pInStudentParams = pInStudentParams) : pOutStudentParams
Parent.GetCourse((pInCourseParams = pOutStudentParams.CourseStuff) :
pOutCourseParams
Build Enrol details based on student / course stuff.
Return EnrolmentParams.
Hope this makes sense.
Regards,
Chris Will, Dept. of Educ. Training, ITB, Sydney, Australia
-----Original Message-----
From: Peter Sham [mailto:[email protected]]
Sent: Friday, 8 October 1999 9:35
To: [email protected]; [email protected]
Subject: Re: (forte-users) Replicating the PersistenceMgrSO
Hi,
Whenever you make a call to your load-balanced SO, it
would go through the router. That is what I
understand. No matter you make the call from inside
or outside the SO.
Secondly, you can turn on the "fail-over" option of a
router but not load-balanced it. On these routers,
you can check their instruments to see which one is
really running.
Hope this help.
Regards,
Peter Sham.We never call an SO from within an SO. Instead we do the following :
MySO is mapped to MySOclass.
MySOclass is a facade which has an attribute for every Policy Manager
related to this SO.
Each Policy manager is instanciated in MySOclass.
Each Policy manager has an attribute called Parent.
Parent is defined by MySOclass to be self.
If two Policy managers need to work together we invoke methods via the
parent attribute :
Example
I have a partition for Enrolments.
It has three Policy Managers within it
a Students Policy Manager (with a Add, Delete, Get methods)
a Courses Policy Manager (with a Add, Delete, Get methods).
an Enrolments Policy Manager (with a Add, Delete, Get methods).
To enable this partition we have defined :
EnrolmentsSO (environment visible, message duration) with the EnrolmentsMgr
class as its related class.
The EnrolmentsMgr class has the following methods and attributes :
Methods :
AddStudent
AddCourse
AddEnrolment
GetStudent
GetCourse
GetEnrolment
DeleteStudent
DeleteCourse
DeleteEnrolment
All of these methods do a one line return statement, simply passing the
method invocation to
the appropriate Policy Manager. For example AddStudent would say
Return theStudentPM.AddStudent(pInStudentParams : pInStudentParams)
: pOutStudentParams
In the Init method for the EnrolmentsMgr we instanciate the following
attributes :
theStudentPM (which is typed to the StudentPM class)
theCoursePM (which is typed to the CoursePM class)
theEnrolmentsPM (which is typed to the EnrolmentsPM class)
Also in the Init method we set an attribute (called parent) on each
PM to the value of Self.
Then when one PM needs to invoke a method on another PM we simply do :
For example in the theEnrolmentPM.GetEnrolment method we need to get
Students and Courses
thus we code :
Parent.GetStudent(pInStudentParams = pInStudentParams) : pOutStudentParams
Parent.GetCourse((pInCourseParams = pOutStudentParams.CourseStuff) :
pOutCourseParams
Build Enrol details based on student / course stuff.
Return EnrolmentParams.
Hope this makes sense.
Regards,
Chris Will, Dept. of Educ. Training, ITB, Sydney, Australia
-----Original Message-----
From: Peter Sham [mailto:[email protected]]
Sent: Friday, 8 October 1999 9:35
To: [email protected]; [email protected]
Subject: Re: (forte-users) Replicating the PersistenceMgrSO
Hi,
Whenever you make a call to your load-balanced SO, it
would go through the router. That is what I
understand. No matter you make the call from inside
or outside the SO.
Secondly, you can turn on the "fail-over" option of a
router but not load-balanced it. On these routers,
you can check their instruments to see which one is
really running.
Hope this help.
Regards,
Peter Sham. -
Re: (forte-users) How do you change the font color onwindow.StatusText
Hi Richard,
In the init method insert the line
<_StatusLine>.PenColor = C_BLUE ;
This sets the pen color for the widget.
StatusText is an attribute on the Window class that
holds the value of the text. This value is then
displayed in the specified data field that you assign.
Hope this helps,
Jairaj Rampershad
System Consultant
--- "Robinson, Richard"
<[email protected]> wrote:
I'm using Forte 3.0.G.2 and can't get the font color
to change.
I've followed the instructions in the help
documentation by creating a data
field widget (named it _StatusLine) and mapped it as
a TextData. In my Init
method I then have a chunk of code to set up the
Window.StatusText. It
looks like this:
_StatusLine = new;
Window.StatusText = _StatusLine;
Once that's done the code updates Window.StatusText
as needed. All this
works fine except I can't get the font color
changed. I've used the Window
workshop to specify a color for the data field
widget but it appears that
the underlying Forte libraries has a mind of it's
own. Any clues as what to
do? All I'm trying to do is set the color to the
default "information"
color - which is blue.
Thanks in advance
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]It's not so simple to find it if you don't know what you're looking for... But it can be found via View - Show/Hide - Toolbar Items - Properties Bar.
-
RE: (forte-users) Forte SMTP and POP3 Support
Scaffolds includes in a protocol library an smtphandler which allows us to
send emails. It works great! You can try contacting someone at Metamor to
see if they can give you more information on this. I can't give you any
code as it is part of their package. Sorry!
-----Original Message-----
From: Rottier, Pascal [mailto:Rottier.Pascalpmintl.ch]
Sent: Wednesday, February 23, 2000 7:22 AM
To: 'edwardsmjwillis.com'; kamranaminyahoo.com
Subject: RE: (forte-users) Forte SMTP and POP3
Support
Mark,
Unfortunately, Forte doesn't offer any ready-to-use internet
protocoll
support libraries (like FTP, Telnet, SMTP, POP3, NNTP,
UU-code
or MIME). I think this would be a valuable enhancement of
Forte.
Does any one know if SUN plans to include this into Forte?
Does
any one know if there is any third-party set of Tool-classes
that
supports this?
Pascal
> -----Original Message-----
> From: edwardsmjwillis.com [SMTP:edwardsmjwillis.com]
> Sent: Wednesday, February 23, 2000 3:36 PM
> To: kamranaminyahoo.com
> Subject: (forte-users) Forte SMTP and POP3 Support
>
>
>
> Hi,
>
> Our Forte development team are currently investigating how
we can add
> internet
> mail capabilities to a Forte application. Our application
needs to
> send/receive
> mails from a mail server in an NT environment. Does forte
provide SMTP and
> POP3
> protocol support (libraries) so that we can use external
connection class
> to
> connect to the server and send/ receive mails or do we
have to use third
> party
> controls ?.
>
> Any help regarding code examples or third party solutions
would be
> appreciated.
>
> Thanks in advance
>
> Mark J Edwards
> Senior Technical Specialist
> Willis
>
> Email: edwardsmjwillis.com
>
>
>
>
>
> The information in this email and in any attachments is
confidential and
> may be
> privileged. If you are not the intended recipient, please
destroy this
> message,
> delete any copies held on your systems and notify the
sender immediately.
> You
> should not retain, copy or use this email for any purpose,
nor disclose
> all or
> any part of its content to any other person.
>
>
> --
> 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.comHi,
Unfortunatly, Forte does not provide SMTP and POP3 protocoles.
But, you can use External connections to do it if you need.
You can find a simple SMTP send mail sample code on
http://perso.club-internet.fr/dnguyen/ . The receive should be as easy as the send.
For MIME base 64 encoding and decoding, it should last one or two weeks of coding
(if you need optimization).
One advantage of coding this in Tool directly is the portability.
In your case, on NT, you could also interface with MAPI using for instance the
ActiveX interface.
By that way, you will already have SMTP, POP3 and MIME.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
http://perso.club-internet.fr/dnguyen/
edwardsmjwillis.com a écrit:
Hi,
Our Forte development team are currently investigating how we can add internet
mail capabilities to a Forte application. Our application needs to send/receive
mails from a mail server in an NT environment. Does forte provide SMTP and POP3
protocol support (libraries) so that we can use external connection class to
connect to the server and send/ receive mails or do we have to use third party
controls ?.
Any help regarding code examples or third party solutions would be appreciated.
Thanks in advance
Mark J Edwards
Senior Technical Specialist
Willis
Email: edwardsmjwillis.com
The information in this email and in any attachments is confidential and may be
privileged. If you are not the intended recipient, please destroy this message,
delete any copies held on your systems and notify the sender immediately. You
should not retain, copy or use this email for any purpose, nor disclose all or
any part of its content to any other person.
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) Does anyone have experience using OracleLarge Objects
hi ,
A few months ago, I tried a oracle stored procedure with a BLOB parameter,
but Forte(3.l2) could not recognize the blob variable. I used oracle 8.0
hth
suma
-----Original Message-----
From: Amin, Kamran [mailto:kamran.aminlendware.com]
Sent: Thursday, March 29, 2001 2:40 PM
To: 'Forte User Group'
Cc: Magaliff, Bill
Subject: (forte-users) Does anyone have experience using Oracle Large
Objects (LOB's)?
Does anyone have experience using Oracle Large Objects (LOB's) -
specifically the CLOB datatype? Forte supports Oracle LONG's but given that
Oracle is going to phase out that datatype and they're trying to push users
towards CLOB's instead of LONG's, I want to find out if Forte can handle it
and, if so, what we should know about mapping Forte datatypes to the Oracle
CLOB. [Their compatibility matrix for v3.5 indicates suppport under Oracle
8.1.x, and CLOB's were introduced back in 8.0.x - but the word from Forte is
that they currently don't support it.]
thanks in advance.
ka
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,
Did you get any solution to this. If yes, please share.
Thanks,
Tints -
Dave
If you use #,##0.00 template, forte won't allow you to enter more than 28 numbers.
Nat
"Campbell, Dave" <DCampbellpurolator.com> 01/28 10:49 AM >>>Thanks Zenon,
You mean... that without the aftervaluechange event, I could catch this?
Because by no means is my exception block anchored to that event.
I am looking for advice of where I could put this exception block...if there
is another possible place at all.
Thanks.
Dave
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
-----Original Message-----
Hi Dave,
You have no chance to catch this exception in aftervaluechange block.
This event is triggered if the value in DataField is OK.
You get only Arithmetic exception without the aftervaluechange event if the
length of the decimal is greater as 28.
Regards
Zenon Adamek
Forte Developer
Purolator Courier Ltd.
ZAdamekpurolator.com
-----Original Message-----
From: Campbell, Dave [SMTP:DCampbellpurolator.com]
Sent: Friday, January 28, 2000 8:19 AM
To: 'kamranaminyahoo.com'
Subject: (forte-users) Overflow Exception that I can't
catch...
The problem is:
I have a DataField, mapped type :DecimalNullable
the input mask is set to Template ( #,##0;;;;)
Because it is Template I can't validate on keystroke and
I can't set the max characters in the properties sheet.
This works great until, Someone enters over 28 characters into the
field.
It then displays the errors:
USER ERROR: Operation caused arithmetic overflow
Class: qqsp_ArithmeticException
Error #: [301, 7]
Deteced at: DecimalData.SetScale at 1
ErrorTime: Thu Jan 27 15:50:48
Exception occurred (locally) on partition
"PurolatorApplications_CL0_Client" ,(partitionId =
DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7, TASKiD =
[DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7.492] in
application
"FTLaunch_c10",pid 279 on node W5300109 in environment centrale
This is the first bit of code that executes when I leave the field
and the
value has changed:
when <est_daily_rev_amt>.aftervaluechange do
Begin
sys_upd_usr_nam = aUserProfileBO.user_nam;
aCPVDetailItem.SetState(base_detailItem.CHANGED_STATE);
Exception
when ex:ArithmeticException Do
Task.ErrMgr.Clear();
Window.MessageDialog(
messageText='Revenue amount can not exceed
100,000,000',
MessageType=MT_WARNING);
Self.Window.PurgeEvents();
End;
This is what I do:
I put a debugging stop on the "when line" and the "Exception line"
I also set the debugger to stop on all exceptions and posts.
It never reaches the above code!?
Is this a forte bug?
I need the template and I need it to be a decimalnullable.
Is there any suggestions for where else I may catch this
Exception???
Thanks in advance
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.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.comDave
If you use #,##0.00 template, forte won't allow you to enter more than 28 numbers.
Nat
"Campbell, Dave" <DCampbellpurolator.com> 01/28 10:49 AM >>>Thanks Zenon,
You mean... that without the aftervaluechange event, I could catch this?
Because by no means is my exception block anchored to that event.
I am looking for advice of where I could put this exception block...if there
is another possible place at all.
Thanks.
Dave
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
-----Original Message-----
Hi Dave,
You have no chance to catch this exception in aftervaluechange block.
This event is triggered if the value in DataField is OK.
You get only Arithmetic exception without the aftervaluechange event if the
length of the decimal is greater as 28.
Regards
Zenon Adamek
Forte Developer
Purolator Courier Ltd.
ZAdamekpurolator.com
-----Original Message-----
From: Campbell, Dave [SMTP:DCampbellpurolator.com]
Sent: Friday, January 28, 2000 8:19 AM
To: 'kamranaminyahoo.com'
Subject: (forte-users) Overflow Exception that I can't
catch...
The problem is:
I have a DataField, mapped type :DecimalNullable
the input mask is set to Template ( #,##0;;;;)
Because it is Template I can't validate on keystroke and
I can't set the max characters in the properties sheet.
This works great until, Someone enters over 28 characters into the
field.
It then displays the errors:
USER ERROR: Operation caused arithmetic overflow
Class: qqsp_ArithmeticException
Error #: [301, 7]
Deteced at: DecimalData.SetScale at 1
ErrorTime: Thu Jan 27 15:50:48
Exception occurred (locally) on partition
"PurolatorApplications_CL0_Client" ,(partitionId =
DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7, TASKiD =
[DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7.492] in
application
"FTLaunch_c10",pid 279 on node W5300109 in environment centrale
This is the first bit of code that executes when I leave the field
and the
value has changed:
when <est_daily_rev_amt>.aftervaluechange do
Begin
sys_upd_usr_nam = aUserProfileBO.user_nam;
aCPVDetailItem.SetState(base_detailItem.CHANGED_STATE);
Exception
when ex:ArithmeticException Do
Task.ErrMgr.Clear();
Window.MessageDialog(
messageText='Revenue amount can not exceed
100,000,000',
MessageType=MT_WARNING);
Self.Window.PurgeEvents();
End;
This is what I do:
I put a debugging stop on the "when line" and the "Exception line"
I also set the debugger to stop on all exceptions and posts.
It never reaches the above code!?
Is this a forte bug?
I need the template and I need it to be a decimalnullable.
Is there any suggestions for where else I may catch this
Exception???
Thanks in advance
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.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 -
Nat,
As I feared, This forces the user to enter decimals even if there are none.
The Users Don't want this.
So, i'm afraid i am back at beginning.. Trying to catch this exception..
Thank you for your input.
I would be happy to try anyone elses solution to this annoying issue.
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
Dave
If you use #,##0.00 template, forte won't allow you to enter more than
28 numbers.
Nat
"Campbell, Dave" <DCampbellpurolator.com> 01/28 10:49 AM >>>Thanks Zenon,
You mean... that without the aftervaluechange event, I could catch this?
Because by no means is my exception block anchored to that event.
I am looking for advice of where I could put this exception block...if there
is another possible place at all.
Thanks.
Dave
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
-----Original Message-----
Hi Dave,
You have no chance to catch this exception in aftervaluechange block.
This event is triggered if the value in DataField is OK.
You get only Arithmetic exception without the aftervaluechange event if the
length of the decimal is greater as 28.
Regards
Zenon Adamek
Forte Developer
Purolator Courier Ltd.
ZAdamekpurolator.com
-----Original Message-----
From: Campbell, Dave [SMTP:DCampbellpurolator.com]
Sent: Friday, January 28, 2000 8:19 AM
To: 'kamranaminyahoo.com'
Subject: (forte-users) Overflow Exception that I can't
catch...
The problem is:
I have a DataField, mapped type :DecimalNullable
the input mask is set to Template ( #,##0;;;;)
Because it is Template I can't validate on keystroke and
I can't set the max characters in the properties sheet.
This works great until, Someone enters over 28 characters into the
field.
It then displays the errors:
USER ERROR: Operation caused arithmetic overflow
Class: qqsp_ArithmeticException
Error #: [301, 7]
Deteced at: DecimalData.SetScale at 1
ErrorTime: Thu Jan 27 15:50:48
Exception occurred (locally) on partition
"PurolatorApplications_CL0_Client" ,(partitionId =
DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7, TASKiD =
[DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7.492] in
application
"FTLaunch_c10",pid 279 on node W5300109 in environment centrale
This is the first bit of code that executes when I leave the field
and the
value has changed:
when <est_daily_rev_amt>.aftervaluechange do
Begin
sys_upd_usr_nam = aUserProfileBO.user_nam;
aCPVDetailItem.SetState(base_detailItem.CHANGED_STATE);
Exception
when ex:ArithmeticException Do
Task.ErrMgr.Clear();
Window.MessageDialog(
messageText='Revenue amount can not exceed
100,000,000',
MessageType=MT_WARNING);
Self.Window.PurgeEvents();
End;
This is what I do:
I put a debugging stop on the "when line" and the "Exception line"
I also set the debugger to stop on all exceptions and posts.
It never reaches the above code!?
Is this a forte bug?
I need the template and I need it to be a decimalnullable.
Is there any suggestions for where else I may catch this
Exception???
Thanks in advance
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.comNat,
As I feared, This forces the user to enter decimals even if there are none.
The Users Don't want this.
So, i'm afraid i am back at beginning.. Trying to catch this exception..
Thank you for your input.
I would be happy to try anyone elses solution to this annoying issue.
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
Dave
If you use #,##0.00 template, forte won't allow you to enter more than
28 numbers.
Nat
"Campbell, Dave" <DCampbellpurolator.com> 01/28 10:49 AM >>>Thanks Zenon,
You mean... that without the aftervaluechange event, I could catch this?
Because by no means is my exception block anchored to that event.
I am looking for advice of where I could put this exception block...if there
is another possible place at all.
Thanks.
Dave
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
-----Original Message-----
Hi Dave,
You have no chance to catch this exception in aftervaluechange block.
This event is triggered if the value in DataField is OK.
You get only Arithmetic exception without the aftervaluechange event if the
length of the decimal is greater as 28.
Regards
Zenon Adamek
Forte Developer
Purolator Courier Ltd.
ZAdamekpurolator.com
-----Original Message-----
From: Campbell, Dave [SMTP:DCampbellpurolator.com]
Sent: Friday, January 28, 2000 8:19 AM
To: 'kamranaminyahoo.com'
Subject: (forte-users) Overflow Exception that I can't
catch...
The problem is:
I have a DataField, mapped type :DecimalNullable
the input mask is set to Template ( #,##0;;;;)
Because it is Template I can't validate on keystroke and
I can't set the max characters in the properties sheet.
This works great until, Someone enters over 28 characters into the
field.
It then displays the errors:
USER ERROR: Operation caused arithmetic overflow
Class: qqsp_ArithmeticException
Error #: [301, 7]
Deteced at: DecimalData.SetScale at 1
ErrorTime: Thu Jan 27 15:50:48
Exception occurred (locally) on partition
"PurolatorApplications_CL0_Client" ,(partitionId =
DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7, TASKiD =
[DEB96B60-AA27-11D1-82A8-23E82A0FAA77:0X6f98:0x7.492] in
application
"FTLaunch_c10",pid 279 on node W5300109 in environment centrale
This is the first bit of code that executes when I leave the field
and the
value has changed:
when <est_daily_rev_amt>.aftervaluechange do
Begin
sys_upd_usr_nam = aUserProfileBO.user_nam;
aCPVDetailItem.SetState(base_detailItem.CHANGED_STATE);
Exception
when ex:ArithmeticException Do
Task.ErrMgr.Clear();
Window.MessageDialog(
messageText='Revenue amount can not exceed
100,000,000',
MessageType=MT_WARNING);
Self.Window.PurgeEvents();
End;
This is what I do:
I put a debugging stop on the "when line" and the "Exception line"
I also set the debugger to stop on all exceptions and posts.
It never reaches the above code!?
Is this a forte bug?
I need the template and I need it to be a decimalnullable.
Is there any suggestions for where else I may catch this
Exception???
Thanks in advance
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com
Regards,
Dave Campbell
Consultant,
Caro Systems Inc.
Mailto:Dave.CampbellCaroSys.com -
Re: (forte-users) Question
This is a multi-part message in MIME format.
--------------4E6A4194374DC1BDF50CB1A1
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
I would set the completion event for the display method of the new window and
register to this event in the main window as you see in the attached .pex file.
With this solution it is possible to handle a failor in the new window in order
to bahave like the normal completion and cause the deletion of the input element
in the main window.
Best Regards,
Tamas Deak
"Zirney, Bobby" wrote:
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_001_01BEF4BD.83F24DA6
Content-Type: text/plain;
charset="iso-8859-1"
I have a frame with a button on it that will open up another frame. When I
close the second frame by pressing the X in the top right hand corner, I
want to clear all the data on the first screen. I have been trying all
sorts of things without success. Does anyone have any suggestions as to how
to do this?
------_=_NextPart_001_01BEF4BD.83F24DA6
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<DEFANGED-META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<DEFANGED-META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2448.0">
<DEFANGED-TITLE>Question</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=3D2 FACE=3D"Arial">I have a frame with a button on it =
that will open up another frame. When I close the second frame by =
pressing the X in the top right hand corner, I want to clear all the =
data on the first screen. I have been trying all sorts of things =
without success. Does anyone have any suggestions as to how to do =
this?</FONT></P>
</BODY>
</HTML>
------_=_NextPart_001_01BEF4BD.83F24DA6--
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]
--------------4E6A4194374DC1BDF50CB1A1
Content-Type: application/x-unknown-content-type-pex_auto_file;
name="Win.pex"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="Win.pex"
YmVnaW4gVE9PTCBUb3NzTWU7DQoNCmluY2x1ZGVzIERpc3BsYXlQcm9qZWN0Ow0KaW5jbHVk
ZXMgRnJhbWV3b3JrOw0KSEFTIFBST1BFUlRZIElzTGlicmFyeSA9IEZBTFNFOw0KDQotLSBT
VEFSVCBGT1JXQVJEIENMQVNTIERFQ0xBUkFUSU9OUw0KZm9yd2FyZCAgTmV3V2luIGlzIG1h
cHBlZDsNCmZvcndhcmQgIFdpbiBpcyBtYXBwZWQ7DQotLSBFTkQgRk9SV0FSRCBDTEFTUyBE
RUNMQVJBVElPTlMNCg0KLS0gU1RBUlQgRk9SV0FSRCBDVVJTT1IgREVDTEFSQVRJT05TDQot
LSBFTkQgRk9SV0FSRCBDVVJTT1IgREVDTEFSQVRJT05TDQoNCi0tIFNUQVJUIENPTlNUQU5U
IERFRklOSVRJT05TDQotLSBFTkQgQ09OU1RBTlQgREVGSU5JVElPTlMNCg0KLS0gU1RBUlQg
QyBEQVRBIFRZUEUgREVGSU5JVElPTlMNCi0tIEVORCBDIERBVEEgVFlQRSBERUZJTklUSU9O
Uw0KDQotLSBTVEFSVCBDTEFTUyBERUZJTklUSU9OUw0KDQpjbGFzcyBOZXdXaW4gaXMgbWFw
cGVkIGluaGVyaXRzIGZyb20gRGlzcGxheVByb2plY3QuVXNlcldpbmRvdw0KDQoNCg0KaGFz
IHB1YmxpYyAgbWV0aG9kIERpc3BsYXkgd2hlcmUgY29tcGxldGlvbiA9IChyZXR1cm4gPSBO
ZXdXaW5kb3dGaW5pc2hlZCwgZXhjZXB0aW9uID0gTmV3V2luZG93RmFpbGVkKTsNCmhhcyBw
dWJsaWMgIG1ldGhvZCBJbml0Ow0KDQpoYXMgcHJvcGVydHkNCglzaGFyZWQ9KGFsbG93PW9u
LCBvdmVycmlkZT1vbiwgZGVmYXVsdD1vZmYpOw0KCXRyYW5zYWN0aW9uYWw9KGFsbG93PW9u
LCBvdmVycmlkZT1vbiwgZGVmYXVsdD1vZmYpOw0KCW1vbml0b3JlZD0oYWxsb3c9b24sIG92
ZXJyaWRlPW9uLCBkZWZhdWx0PW9mZik7DQoJZGlzdHJpYnV0ZWQ9KGFsbG93PW9mZiwgb3Zl
cnJpZGU9b2ZmKTsNCg0KaGFzDQorNTE1MTQ2MzEwMDAwMDFiMTAwMDAwMTcyOWZlMzAxMDEw
MDAwMjEwMTAyMDAwMDAwMDAwMjAyMDYwMDk0MDgwMA0KKzFkMDA5ZmZmMDEwMTA0MjEwZjEw
MTExMjAxMDEwMTE3MDAwMDlmZmYwMDAwMDAwMDBkMDAwMDBiYjgwZmEwMDANCiswMDAwMDAw
MDAwMDAwMDAwMDAwMTAxNjA2MDAwMDAwMDAwMDAwMDAwMDAwMDlkMGJiODlkMGZhMDAwMDAw
MDAwDQorMDAwMDAxMDgwMzAzMDFmZmZkMDAwMDAwMDAwMDAwMDAwMDAyMDEwMDAwMDAwMDBm
MDQwNTAwMDYwMDAwMDIwMQ0KKzAwMDEwMDAwMGMwMDAwMDEwMDBiMDAwMTAwMDAwMDAwMDAw
MzAwMDAyMTAxMDIwMDAwMDAwMDA1MDQwMDAwMWMNCiswMjAwMTAwNTA2MDA3YTA4MDA0ZDAw
OWZmZjAxMDEwMTAxMGYxMDExMTIwMTAxMDExNzAwMDA5ZmZmMDEwMDAwDQorMDAwZDAwMDA1
ZGMwNWRiZjAwMDAwMDAwMDMwMzAzMDMwMDAyMDQwNGEwYTAwMDAwMDAwMDAwMDAwMDAwMDA5
ZA0KKzVkYzA5ZDVkYmYwMDAwMDAwMDAwMDAwMTA4MDY2ODAxMDAwMDAwNWRjMDVkYmYwMDAw
MDAwMjAxMDAwMDAwMDANCiswOTAwMDAwNjAwMDAyMTAxMDIwMDAwMDAwMDA3MDcwNjAwNzgw
ODAyMDEwMjBhMGE0NjYxNjk2YzQyNzU3NDc0DQorNmY2ZTAxMDIwNDIxMjEyMTIxMjEyMTIx
MjExNzAwMDE5ZmZmMGMwMDAwMDAwZDlkMDEyZTlkMDEyNDAwZTUwMQ0KKzQzMDAwMDAwMDAw
MzAzMDMwMzAwMDUwMTAxYTBhMDAwMDAwMDAwMDAwMDAwMDAwMDljZTU5ZDAxNDMwMDAwMDAN
CiswMDAwMDAwMTBiMDQwNDQ2NjE2OTZjMDAwMjAxMDAwMDAwMDAwNzFhOTE5YzljOWNhMzlk
MDEwMzlkMDEwZTlkDQorMDE3MjE2MTkxYTM4NjI2Mzc3OTE5YjljOWM5Y2EwOWNhMzljYzE5
Y2ViOWNlYzlkMDEwMDlkMDEwMzlkMDEwZA0KKzlkMDEwZTlkMDEzNjlkMDE2MzlkMDE2NDlk
MDE3MjAzMDENCi0wMDQ2ODRhMA0KDQoNCmVuZCBjbGFzczsNCg0KY2xhc3MgV2luIGlzIG1h
cHBlZCBpbmhlcml0cyBmcm9tIERpc3BsYXlQcm9qZWN0LlVzZXJXaW5kb3cNCg0KDQpoYXMg
cHVibGljICBtZXRob2QgRGlzcGxheTsNCmhhcyBwdWJsaWMgIG1ldGhvZCBJbml0Ow0KDQpo
YXMgcHVibGljICBldmVudCBoYW5kbGVyIFdpbkNsb3NlSGFuZGxlcihpbnB1dCBwV2luOiBU
b3NzTWUuTmV3V2luKTsNCg0KaGFzIHByb3BlcnR5DQoJc2hhcmVkPShhbGxvdz1vbiwgb3Zl
cnJpZGU9b24sIGRlZmF1bHQ9b2ZmKTsNCgl0cmFuc2FjdGlvbmFsPShhbGxvdz1vbiwgb3Zl
cnJpZGU9b24sIGRlZmF1bHQ9b2ZmKTsNCgltb25pdG9yZWQ9KGFsbG93PW9uLCBvdmVycmlk
ZT1vbiwgZGVmYXVsdD1vZmYpOw0KCWRpc3RyaWJ1dGVkPShhbGxvdz1vZmYsIG92ZXJyaWRl
PW9mZik7DQoNCmhhcw0KKzUxNTE0NjMxMDAwMDAyM2QwMDAwMDFlOTlmZTMwMTAxMDAwMDIx
MDEwMjAwMDAwMDAwMDIwMjA2MDA5NDA4MDANCisxZDAwOWZmZjAxMDEwNDIxMGYxMDExMTIw
MTAxMDExNzAwMDA5ZmZmMDAwMDAwMDAwZDAwMDAwYmI4MGZhMDAwDQorMDAwMDAwMDAwMDAw
MDAwMDAwMDEwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDA5ZDBiYjg5ZDBmYTAwMDAwMDAwMA0K
KzAwMDAwMTA4MDMwMzAxZmZmZDAwMDAwMDAwMDAwMDAwMDAwMjAxMDAwMDAwMDAwZjA0MDUw
MDA2MDAwMDAyMDENCiswMDAxMDAwMDBkMDAwMDAxMDAwYjAwMDEwMDAwMDAwMDAwMDMwMDAw
MjEwMTAyMDAwMDAwMDAwNTA0MDAwMDFjDQorMDIwMDEwMDUwNjAwN2EwODAwNGQwMDlmZmYw
MTAxMDEwMTBmMTAxMTEyMDEwMTAxMTcwMDAwOWZmZjAxMDAwMA0KKzAwMGQwMDAwNWRjMDVk
YmYwMDAwMDAwMDAzMDMwMzAzMDAwMjA0MDRhMGEwMDAwMDAwMDAwMDAwMDAwMDAwOWQNCis1
ZGMwOWQ1ZGJmMDAwMDAwMDAwMDAwMDEwODA2NjgwMTAwMDAwMDVkYzA1ZGJmMDAwMDAwMDIw
MTAwMDAwMDAwDQorMDkwMDAwMDYwMDAwMjEwMjAyMDAwMDAwMDAwNzA4MDcwNjAwZjYwODIw
ODkwMjA3MDc2NDYxNzQ2MTRmNmU2NQ0KKzAxMDIwYjIxMjEyMTIxMjEwMTAxMDExNzAwMDEw
ODA4NTQ2NTc4NzQ0NDYxNzQ2MTBjMDAwMDAwMGQ5ZDA2MWENCis5ZDA2MjUwMGM2MDUzNTAw
MDAwMDAwMDMwMzAzMDMwMDA1MDEwMjgwYTAwMDAwMDAwMDAwMDAwMDAwMDA5Y2M2DQorOWQw
NTM1MDAwMDAwMDAwMDAwMDEwMzAyMDEwNzAwMTMwMDAwMDlmZjgxMDAwMDllMDA0MDAwMTQw
MzAxMDAwOA0KKzA2MDA3ODA4MDIwMTAyMDcwNzYyNzQ2ZTRmNzA2NTZlMDEwMjA0MjEyMTIx
MjEyMTIxMjEyMTE3MDAwMjlmZmYNCiswZDAwMDAwMDBkOWQwOTEzOWQwOWVlMDBlNTAzOTUw
MDAwMDAwMDAzMDMwMzAzMDAwNTAxMDFhMGEwMDAwMDAwDQorMDAwMDAwMDAwMDAwOWNlNTlk
MDM5NTAwMDAwMDAwMDAwMDAxMGIwZDBkNGY3MDY1NmUyYzIwNTM2NTczNjE2ZA0KKzY1MjEw
MDAyMDEwMDAwMDAwMDA4MWE5MTljOWM5Y2EzOWQwMTAzOWQwMTBmOWQwMTdmOWQwMWU5MWMx
OTFhMzgNCis2MjYzNzc5MTliOWM5YzljYTA5Y2EzOWNjMTljZWI5Y2VjOWQwMTAwOWQwMTAz
OWQwMTBkOWQwMTBmOWQwMTNjDQorOWQwMTY5OWQwMTZhOWQwMTZkOWQwMTcyOWQwMTdmOWQw
MWE0OWQwMWQxOWQwMWQyOWQwMWU5MDMwMQ0KLTAwODg1MDI2DQoNCg0KZW5kIGNsYXNzOw0K
LS0gRU5EIENMQVNTIERFRklOSVRJT05TDQoNCi0tIFNUQVJUIFNFUlZJQ0UgT0JKRUNUIERF
RklOSVRJT05TDQotLSBFTkQgU0VSVklDRSBPQkpFQ1QgREVGSU5JVElPTlMNCg0KLS0gU1RB
UlQgQ1VSU09SIERFRklOSVRJT05TDQotLSBFTkQgQ1VSU09SIERFRklOSVRJT05TDQoNCi0t
IFNUQVJUIFRZUEVERUYgREVGSU5JVElPTlMNCi0tIEVORCBUWVBFREVGIERFRklOSVRJT05T
DQoNCi0tIFNUQVJUIE1FVEhPRCBERUZJTklUSU9OUw0KDQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCm1ldGhvZCBOZXdX
aW4uRGlzcGxheQ0KYmVnaW4NCnNlbGYuT3BlbigpOw0KZXZlbnQgbG9vcA0KICAgICAgICB3
aGVuIHRhc2suU2h1dGRvd24gZG8NCiAgICAgICAgICAgICAgICB0YXNrLmxnci5wdXRsaW5l
KCdzaHV0ZG93bicpOw0KICAgICAgICAgICAgICAgIGV4aXQ7DQogICAgICAgIHdoZW4gV2lu
ZG93LkFmdGVyRGVhY3RpdmF0ZSBkbw0KICAgICAgICAgICAgICAgIHRhc2subGdyLnB1dGxp
bmUoJ2RlYWN0Jyk7DQogICAgICAgICAgICAgICAgDQogICAgICAgIHdoZW4gPEZhaWxCdXR0
b24+LkNsaWNrIGRvDQovLwkJCWRvIGFuIGludmFsaWQgb3BlcmF0aW9uLiBsZXRgc2VlIHdo
YXQgaGFwcGVucw0KCQkJdCA6IFRleHREYXRhOw0KCQkJdC5TZXRWYWx1ZSgnTklMIGV4Y2Vw
dGlvbiBzaG91bGQgcmFpc2UgaGVyZScpOw0KCQkJICAgICAgICANCmVuZCBldmVudDsNCnNl
bGYuQ2xvc2UoKTsNCmVuZCBtZXRob2Q7DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KbWV0aG9kIE5ld1dpbi5Jbml0
DQpiZWdpbg0Kc3VwZXIuSW5pdCgpOw0KZW5kIG1ldGhvZDsNCg0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQptZXRob2Qg
V2luLkRpc3BsYXkNCmJlZ2luDQpkYXRhT25lLnNldFZhbHVlKCdTdHVmZicpOw0Kc2VsZi5P
cGVuKCk7DQpldmVudCBsb29wDQogICAgICAgIHdoZW4gdGFzay5TaHV0ZG93biBkbw0KICAg
ICAgICAgICAgICAgIGV4aXQ7DQogICAgICAgIHdoZW4gPGJ0bk9wZW4+LkNsaWNrIGRvDQog
ICAgICAgICAgICAgICAgdyA6IE5ld1dpbiA9IG5ldzsNCiAgICAgICAgICAgICAgICBzdGFy
dCB0YXNrIHcuRGlzcGxheSgpIHdoZXJlIGNvbXBsZXRpb249ZXZlbnQ7DQogICAgICAgICAg
ICAgICAgcmVnaXN0ZXIgV2luQ2xvc2VIYW5kbGVyKHcpOw0KZW5kIGV2ZW50Ow0Kc2VsZi5D
bG9zZSgpOw0KZW5kIG1ldGhvZDsNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQptZXRob2QgV2luLkluaXQNCmJlZ2lu
DQpzdXBlci5Jbml0KCk7DQpkYXRhT25lID0gbmV3Ow0KZW5kIG1ldGhvZDsNCg0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpldmVudCBoYW5kbGVyIFdpbi5XaW5DbG9zZUhhbmRsZXIoaW5wdXQgcFdpbjogVG9zc01l
Lk5ld1dpbikNCmJlZ2luDQp3aGVuIHBXaW4uTmV3V2luZG93RmluaXNoZWQgZG8NCglkYXRh
T25lID0gbmV3Ow0KCXRhc2sucGFydC5sb2dtZ3IucHV0bGluZSgnTmV3V2luZG93RmluaXNl
ZCcpOw0KCQ0Kd2hlbiBwV2luLk5ld1dpbmRvd0ZhaWxlZCBkbw0KCWRhdGFPbmUgPSBuZXc7
CQ0KZW5kIGV2ZW50Ow0KLS0gRU5EIE1FVEhPRCBERUZJTklUSU9OUw0KSEFTIFBST1BFUlRZ
DQoJQ29tcGF0aWJpbGl0eUxldmVsID0gMDsNCglQcm9qZWN0VHlwZSA9IEFQUExJQ0FUSU9O
Ow0KCVJlc3RyaWN0ZWQgPSBGQUxTRTsNCglNdWx0aVRocmVhZGVkID0gVFJVRTsNCglJbnRl
cm5hbCA9IEZBTFNFOw0KCUxpYnJhcnlOYW1lID0gJ3Rvc3NtZSc7DQoJU3RhcnRpbmdNZXRo
b2QgPSAoY2xhc3MgPSBXaW4sIG1ldGhvZCA9IERpc3BsYXkpOw0KDQoNCmVuZCBUb3NzTWU7
DQo=
--------------4E6A4194374DC1BDF50CB1A1--Bobby,
The simplest solution I think would be to use grids and map them to some business class - which I suppose you must be already using. In the event handler of the first window (button.click event) after you call the display method of the second window you can new the business class.
Kapil
From: Zirney, Bobby[SMTP:[email protected]]
Sent: Donnerstag, 2. September 1999 02:33
To: '[email protected]'
Subject: (forte-users) Question
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_001_01BEF4BD.83F24DA6
Content-Type: text/plain;
charset="iso-8859-1"
I have a frame with a button on it that will open up another frame. When I
close the second frame by pressing the X in the top right hand corner, I
want to clear all the data on the first screen. I have been trying all
sorts of things without success. Does anyone have any suggestions as to how
to do this?
------_=_NextPart_001_01BEF4BD.83F24DA6
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<DEFANGED-META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<DEFANGED-META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2448.0">
<DEFANGED-TITLE>Question</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=3D2 FACE=3D"Arial">I have a frame with a button on it =
that will open up another frame. When I close the second frame by =
pressing the X in the top right hand corner, I want to clear all the =
data on the first screen. I have been trying all sorts of things =
without success. Does anyone have any suggestions as to how to do =
this?</FONT></P>
</BODY>
</HTML>
------_=_NextPart_001_01BEF4BD.83F24DA6--
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] -
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 -
Re: [Re: (forte-users) formatting Percents]
You can create a Domain Class for this and manipulate the setvalue and
FillString methods to do this. You can see the help for knowing more about
this.
--Krishna
"Natarajan Balasubramanian" <[email protected]> wrote:
You may use virtual attribute mapping to your real attribute having .08 and
in the getvalue method of the virtual attribute change the real attribute
value to show as 8%.
Hope this helps,
Nat Balasubramanian.
From: "Fingerhut, Eric" <[email protected]>
To: "'[email protected]'" <[email protected]>
Subject: (forte-users) formatting Percents
Date: Wed, 20 Oct 1999 11:26:51 -0400
I want to provide the option for a user to display values in percents or
not, and finding this surprisingly tricky.
Although its easy to make a DecimalData with a value of .08 look like 8% by
changing the scale and multiplying by its value by 100, I don't see how to
do this in a way that the variable still knows its value is .08.
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]
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]You can create a Domain Class for this and manipulate the setvalue and
FillString methods to do this. You can see the help for knowing more about
this.
--Krishna
"Natarajan Balasubramanian" <[email protected]> wrote:
You may use virtual attribute mapping to your real attribute having .08 and
in the getvalue method of the virtual attribute change the real attribute
value to show as 8%.
Hope this helps,
Nat Balasubramanian.
From: "Fingerhut, Eric" <[email protected]>
To: "'[email protected]'" <[email protected]>
Subject: (forte-users) formatting Percents
Date: Wed, 20 Oct 1999 11:26:51 -0400
I want to provide the option for a user to display values in percents or
not, and finding this surprisingly tricky.
Although its easy to make a DecimalData with a value of .08 look like 8% by
changing the scale and multiplying by its value by 100, I don't see how to
do this in a way that the variable still knows its value is .08.
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]
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] -
Re: (forte-users) PurgeEvents doesn't
Dear Duncan,
I think it would be easier to set the State attribute of your button widget to
FS_INVISIBLE or FS_VIEW in the part where you are handling the click event.
See the attached .pex file file it contains a simple test program which consists of
two window the first has a start and a stop button, but stop button is invisible
till you press the start button. The start button starts the second window as a
separate task and the start button becomes invisible, the stop button visible. In
this way you can assure that the user can only start one task and not more.
Best Regards,
Tamas Deak
Duncan Kinnear wrote:
Hi folks!
Really, the subject line says it all!
I'm calling Window.PurgeEvents() and can watch the Event Queue in the
debugger not changing in the slightest.
We are trying to start a seperate task from a button but we do not want
the user to be able to start more than one task. They can at this stage
by double clicking on the button.The event stack stores the second
click and executes it when the task is finished.
Cheers,
Duncan Kinnear,
McCarthy and Associates, Email: [email protected]
PO Box 764, McLean Towers, Phone: +64 6 834 3360
Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
Providing Integrated Software to the Meat Processing Industry for over 10 years
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]
Tamas Deak
Lufthansa Systems Hungary
(forte developer)
2-6 Mazsa ter, Budapest, 1107, HUNGARY
(36-1) 4312 973
[email protected]
[email protected][email protected]-Hi Jorge,
Instead of using
Data.SetValue(FormatDouble.DecodeDouble(self.PKg));
use
Data.SetValue(FormatDouble.DecodeDecimal(self.PKg,Data.Scale)); //
This will take the second parameter of scale
You will see the desired results.
Thks,
Sanjay
-----Original Message-----
From: Dave Ortman [SMTP:dortmanyahoo.com]
Sent: Monday, March 05, 2001 12:32
To: Jorge Bellido; forte-userslists.xpedior.com
Subject: Re: (forte-users) I don't understand why appear new
decimals.
Simply put, the problem stems from the fact that
floating-point arithmetic is inherently imprecise.
Rounding errors are common.
With doubles, you get 16 digits of accuracy. Beyond
that there is no guarantee.
If you want more information:
http://docs.sun.com/htmlcoll/coll.648.2/iso-8859-1/NUMCOMPGD/ncg_goldberg.ht
ml
-Dave Ortman
--- Jorge Bellido <jorge.bellidoeam.es> wrote:
> I have another problem with numbers. So,
>
> Data: DecimalNullable = new;
> Data.Scale = 20;
> FormatDouble.Template = TextData(value='#');
>
> Dato.SetValue(FormatDouble.DecodeDouble(self.PKg));
>
> PKg is a widget DataField, whose mapped type is
> TextData with input mask float. When I write 1.12
> into the widget the variable Data is
> 1.1200000000000001, and I can't understand it. I
> would like that variable Data was 1.12.
>
> Could anybody to explain it?
>
> Thank you very much.
>
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) Domain Classes
Hi,
This thread coinsides with a recent posting I made on formatting percents
(attached at end).
The complication here is that the data field is part of an array field and
is:
1) editable
2) part of an array of BObjects that are mapped to the array field
There is no separation therefore between a BO and a DO, at least in the
current implementation. Furthermore, the user may or may not want percent to
be the display format. What I think I need is one field that actually has
two values, a display value and a 'true' value, and each would probably need
its own numeric format as well (one for data entry and one for display).
I've never used a domain class, but do you know if such a beast be possible?
-----Original Message-----
I want to provide the option for a user to display values in percents or
not, and finding this surprisingly tricky.
Although its easy to make a DecimalData with a value of .08 look like 8% by
changing the scale and multiplying by its value by 100, I don't see how to
do this in a way that the variable still knows its value is .08.Jason,
Domain Classes can also store FieldWidget information associated with them.
For example, Widget type, Max Characters, Input Mask, Size Policy, Help
Text, etc. This means that when a developer adds the domain to the window
workshop it will automatically have all the settings that were previously
defined on the domain, therefore giving a standard look and feel, as well
as, behaviour(fillstring and SetValue).
Regards,
Allister
Xpedior
www.xpedior.com
Ph: +61-8-9320-7604
Fax: +61-8-9486-8650
-----Original Message-----
From: Jason de Cean [mailto:[email protected]]
Sent: Thursday, 21 October 1999 9:30
To: 'Forte Users'
Subject: (forte-users) Domain Classes
Hi,
Can anyone tell me the advantage of using a domain class ?
We have subclassed DecimalData (FormattedDecimal) and overridden the
FillString and SetValue methods to implement other formatting. This is
then used as an attribute on our data classes and appears to work fine
when mapped to forms.
So, why would we use a Domain Class instead of just sub classing
DecimalData ?
Jace.
Jason de Cean
Genisys Team
Lumley Technology Ltd.
Lvl. 8, 55 Sussex St
Sydney, NSW 2000 Australia
Ph: 02 9248 1321
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]
Maybe you are looking for
-
Missing album art on player...still there in itunes
After synching my ipod nano last night, some of the artwork that was there is now completely blank (just a black square...not even the musical note default). However, the art is still displayed on my PC on itunes. Anyone ever seen this? I will try to
-
Error message to the launch of a SPARQL query well trained in Java
Hello, I am not if it is a compatibility problem between JENA ARQ and got the message that I sometimes not consistently (at least I can not reproduce !!!) so it is very difficult to correct at least to understand and find a solution? (Anyone have a s
-
KR Reference Field coming from Earmarked Fund
Hi Experts, We have distributed our data entry of non PO related invoices out to end users. They data enter and park the invoice. Then Central AP uses their workflow inbox (SBWP) to view and "approve" the document to post it. This works great EXCEP
-
Logging of changes to material classifications in GTS
Dear all is there a possibility to look up, if / when a user has changed the classification of a material? Have tried to find a /SAPSLL/C* table but either there is none or it slipped through when checking... maybe there is another possibility. Hints
-
Call Timer + Intro to CTI
I built a small Cisco IP Phone Service in .NET that simply pulls contacts out of an API for a sales program we use and lets you search and display contacts, and then call them from the Service. I want to extend it so that I can save the info for each