RE: (forte-users) Named Anchored Obj-EnvironmentFailover

I did some playing around with this stuff as well. I can tell you a few
things.
1) The search path option of connected environments only works for SO's, not
for named anchors.
2) When EnvA creates a directory "/glob", which contains object "obj1", then
EnvA owns directory "/glob". Even after restarting environments. If EnvB
tries to add a subdirectory to "/glob" or inserts its own objects into this
path, then the situation becomes unstable. It doesn't immediately produce an
error, but things go wrong anyway. Is this a bug or expected behaviour? I
don't know. I just learned not to do this. Every environment must place it's
named anchors in it's own tree. Directories can't be shared.
3) I think the relative name "glob/obj1" should work, but only if you set
the ObjectLocationMgr to start looking at the root. Default, it will start
looking in it's own environment basepath. But I don't have any experience
with this.
Pascal Rottier
Atos 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
-----Original Message-----
From: Master Programmer [mailto:masterprghotmail.com]
Sent: Monday, January 08, 2001 11:13 PM
To: forte-userslists.xpedior.com
Subject: (forte-users) Named Anchored Obj-Environment Failover
Hi to all,
We connect from EnvA to EnvB giving the user directory parameter as / and
set the Environment Search Path
as EnvA:EnvB. From both environments we start and register
'/glob/obj1' named anchored objects with the same name.
From a client we connect to EnvA and bind to'/glob/obj1' when we shutdown EnvA partition it fails-over to
EnvB. And then we restart EnvA partition. We restart/rebind the client and
try to use object. We see that it is using the EnvB object.
Although we started the primary environment object again.
It is not using the search path. Once we shutdown secondary environment
it starts using primary environment object.
When we try to use relative path when we are binding the object
First parameter ('glob/obj1') No first slash. Trying 3rd parameter
for bind function or just using environment search path, Is is not able to
find the object. From nsls command I figured out that
under the root directory
/forte/UUID of ENVA/node
/site
/UUID of ENVB
/glob/obj1
names are available. When we use relative path (without slash)
is it trying to find /glob/obj1 under the /forte/UUID of ENVA
but we are registering the name under the root.
What is the reason of this odd behaviour or is this a bug?
Any answer will be appreciated,
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

I did some playing around with this stuff as well. I can tell you a few
things.
1) The search path option of connected environments only works for SO's, not
for named anchors.
2) When EnvA creates a directory "/glob", which contains object "obj1", then
EnvA owns directory "/glob". Even after restarting environments. If EnvB
tries to add a subdirectory to "/glob" or inserts its own objects into this
path, then the situation becomes unstable. It doesn't immediately produce an
error, but things go wrong anyway. Is this a bug or expected behaviour? I
don't know. I just learned not to do this. Every environment must place it's
named anchors in it's own tree. Directories can't be shared.
3) I think the relative name "glob/obj1" should work, but only if you set
the ObjectLocationMgr to start looking at the root. Default, it will start
looking in it's own environment basepath. But I don't have any experience
with this.
Pascal Rottier
Atos 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
-----Original Message-----
From: Master Programmer [mailto:masterprghotmail.com]
Sent: Monday, January 08, 2001 11:13 PM
To: forte-userslists.xpedior.com
Subject: (forte-users) Named Anchored Obj-Environment Failover
Hi to all,
We connect from EnvA to EnvB giving the user directory parameter as / and
set the Environment Search Path
as EnvA:EnvB. From both environments we start and register
'/glob/obj1' named anchored objects with the same name.
From a client we connect to EnvA and bind to'/glob/obj1' when we shutdown EnvA partition it fails-over to
EnvB. And then we restart EnvA partition. We restart/rebind the client and
try to use object. We see that it is using the EnvB object.
Although we started the primary environment object again.
It is not using the search path. Once we shutdown secondary environment
it starts using primary environment object.
When we try to use relative path when we are binding the object
First parameter ('glob/obj1') No first slash. Trying 3rd parameter
for bind function or just using environment search path, Is is not able to
find the object. From nsls command I figured out that
under the root directory
/forte/UUID of ENVA/node
/site
/UUID of ENVB
/glob/obj1
names are available. When we use relative path (without slash)
is it trying to find /glob/obj1 under the /forte/UUID of ENVA
but we are registering the name under the root.
What is the reason of this odd behaviour or is this a bug?
Any answer will be appreciated,
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

  • Named Anchored Obj-Environment Failover

    Hi to all,
    We connect from EnvA to EnvB giving the user directory parameter as / and
    set the Environment Search Path
    as EnvA:EnvB. From both environments we start and register
    '/glob/obj1' named anchored objects with the same name.
    From a client we connect to EnvA and bind to'/glob/obj1' when we shutdown EnvA partition it fails-over to
    EnvB. And then we restart EnvA partition. We restart/rebind the client and
    try to use object. We see that it is using the EnvB object.
    Although we started the primary environment object again.
    It is not using the search path. Once we shutdown secondary environment
    it starts using primary environment object.
    When we try to use relative path when we are binding the object
    First parameter ('glob/obj1') No first slash. Trying 3rd parameter
    for bind function or just using environment search path, Is is not able to
    find the object. From nsls command I figured out that
    under the root directory
    /forte/UUID of ENVA/node
    /site
    /UUID of ENVB
    /glob/obj1
    names are available. When we use relative path (without slash)
    is it trying to find /glob/obj1 under the /forte/UUID of ENVA
    but we are registering the name under the root.
    What is the reason of this odd behaviour or is this a bug?
    Any answer will be appreciated,

    Hi Juliesmiley,
    According to your description, I recommend you check the conditions required for an automatic  failover.
      • Primary replica and secondary replica are both configured for syschronous-commit mode and set to AUTOMATIC failover.
      •  All availability databases that are defined in the availability group must be in a SYNCHRONIZED state between the primary replica and the secondary replica.
      • The Windows Server Failover Clustering (WSFC) cluster has quorum.
      • The primary replica has become unavailable.
    For more information, please review the following articles.
    Failover and Failover Modes (AlwaysOn Availability Groups)
    Troubleshooting automatic failover problems in SQL Server 2012 AlwaysOn environments
    Thanks,
    Lydia Zhang

  • RE: Named anchored objects

    Albert,
    In my case I was using a named anchored object to get a handle to an actual
    service object. My named object that I registered in the name service was
    an intermediary to which I did not maintain a connection. So I have not
    explicitly tested what you are asking.
    However, I too was not using a hard coded reference to the SO, and fail over
    and load balancing worked fine. The functions of fail over and load
    balancing are not done by the service object but by the name service, proxy
    and router. Since you are getting a proxy back any time you do a lookup in
    the name service I would think that fail over should work with any anchored
    object that is registered in the name service. When you do a RegisterObject
    call you will notice that one of the arguments is the session duration,
    which implies to me that fail over will be handled the same as for service
    objects.
    Load balancing adds another wrinkle. Load balancing is handled by a router.
    You must get a proxy to the router and not a proxy to an instance of the
    object that the router is doing the load balancing for. In the latter
    scenario you will be bypassing the router. If you are creating, anchoring
    and registering your objects dynamically you will not have a router so you
    will not be able to load balance! This applies even if the objects are
    instantiated within partitions that are load balanced because you will still
    be getting proxies back to a particular instance of the anchored objects.
    There are ways to accomplish load balancing between objects that you
    register yourself. However, the best solution will vary depending on the
    actual problem trying to be solved. If you would like to discuss this
    further, include a little more detail about the scenario you need to
    implement and I will give you what I know.
    BTY what I have outlined above also applies to getting references via a
    system agent.
    Sean
    Cornice Consulting, Inc.
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Albert Dijk
    Sent: Friday, July 03, 1998 11:01 AM
    To: [email protected]
    Subject:
    Alex, David, Jez, Sean,...
    My question about both solutions (using Nameservice and agents) is:
    If I reach a remote service object using either a BindObject or an agent, do
    fail-over and load-balancing work the same way as they normally do when
    using a hard coded reference to the SO.
    Albert Dijk
    From: Sean Brown[SMTP:[email protected]]
    Reply To: [email protected]
    Sent: Thursday, June 25, 1998 6:55 AM
    To: Ananiev, Alex; [email protected]
    Subject: RE: multiple named objects with the same name and
    interface
    Alexander,
    I can not comment on the speed difference because I never tested it.
    But, I
    will say that we looked at the agent solution at a client sight
    before. I
    will give the same warning I gave them. If you go the agent direction
    you
    are now using agents for a purpose that they were not intended. Even
    though
    it technically works, as soon as you start using a piece of
    functionality in
    a way the developer did not intend it to be used you run the risk of
    forward
    compatibility problems. By this I mean, since agents were not
    originally
    intended to be used to look up service / anchored object references,
    it may
    not work in the future because it is not likely to be given
    consideration in
    any future design.
    As we all know, programmers are always stretching the bounds of the
    tools
    they use and you may have a good reason (i.e. performance). I just
    wanted to
    let you know the possible risk.
    One final note on a limitation of using system agents to obtain
    references
    to anchored objects. You can not access agents across environments.
    So, if
    you have connected environments and need to get references to services
    in
    another environment for fail-over or whatever, you will not be able to
    do it
    with agents.
    Just some thoughts!
    Sean
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]]On">mailto:[email protected]]On</a> Behalf Of Ananiev, Alex
    Sent: Wednesday, June 24, 1998 12:14 PM
    To: '[email protected]'
    Subject: RE: multiple named objects with the same name and interface
    David,
    The problem with dynamic binding is that in this case you have to keep
    the reference to the service object somewhere. You don't want to call
    "bindObject" every time you need to use this service object, "bind" is
    a
    time-consuming operation, even on the same partition. Keeping
    reference
    could be undesirable if your object could be moved across partitions
    (e.g. business object).
    The alternative solution is to use agents. You can create custom
    agent,
    make it a subagent of an active partition agent and use it as a
    placeholder for whatever service you need. "FindSubAgent" works much
    faster than "bindObject", we verified that and agent is "user-visible"
    by its nature.
    Alexander
    From: "Sean Brown" <[email protected]>
    Date: Wed, 24 Jun 1998 09:12:55 -0500
    Subject: RE: multiple named objects with the same name and interface
    David,
    I actually determined it through testing. In my case I did not want
    this to
    happen and was trying to determine why it was happing. It makes sense
    if
    you think about it. Forte is trying to avoid making a remote method
    invocation if it can.
    Now, for anything more complex than looking locally first and if none
    is
    found give me any remote instance you can find, you will need to do
    more
    work. Using a naming scheme like Jez suggests below works well.
    Sean
    - -----Original Message-----
    From: Jez Sygrove [<a href="mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Wednesday, June 24, 1998 4:34 AM
    To: [email protected]; 'David Foote'
    Cc: [email protected]
    Subject: RE: multiple named objects with the same name and interface
    David,
    there's a mechanism used within SCAFFOLDS that allows the
    location of the 'nearest' SO when more than one is available.
    It involves registering each duplicated SO under three dynamically
    built
    names. The names include the partition, the node or the environment
    name.
    When wishing to locate the nearest SO the BO builds a SO name using
    its
    own partition and asks the name service for that.
    If there is an SO registered under that name then it must be in the
    same
    partition and all is well. No cross partition calls.
    If not, then the BO builds the name using its node and asks the name
    service for that.
    This means that if there is an SO outside the BO partition but still
    on
    the same node then this can be used. Again, relatively 'local'.
    If neither of these work then the BO has to resort to an environment
    wide search.
    It may be that this approach could be adapted / adopted; I like it's
    ingenuity.
    Cheers,
    Jez
    From: David Foote[SMTP:[email protected]]
    Reply To: David Foote
    Sent: 24 June 1998 03:17
    To: [email protected]
    Cc: [email protected]
    Subject: RE: multiple named objects with the same name and
    interface
    Sean,
    First, thank you for your response. I have wondered about this fora
    long time.
    I looked at the documentation for ObjectLocationManager and on page
    327
    of the Framework Library and AppletSupport Library Guide indescribing
    the BindObject method Forte says:
    "The name service allows more than one anchored object (from
    different
    partitions) to be registered in the name service under the same
    registration name. When you invoke the BindObject method with a
    request
    for a name that has duplicate registration entries, the BindObject
    method finds an entry corresponding to an active partition, skipping
    any
    entries that do not. If no such active partition is found, or if the
    requested name is not found in the name service registry, a
    RemoteAccessException will be raised when the BindObject method is
    invoked."
    My question is: How did you discover that in the case of duplicate
    registrations the naming service will return the local object if one
    exists? This is not apparent from the documentation I have quoted.
    Is
    it documented elsewhere? Or did you determine it empirically?
    David N. Foote,
    Consultant
    ----Original Message Follows----
    David,
    First I will start by saying that this can be done by using named
    anchored
    objects and registering them yourself in the name service. There is
    documentation on how to do this. And by default you will get mostof
    the
    behavior you desire. When you do a lookup in the name service
    (BindObject
    method) it will first look in the local partition and see if thereis
    a
    local copy and give you that copy. By anchoring the object and
    manually
    registering it in the name service you are programmatically creating
    your
    own SO without defining it as such in the development environment.
    BTW
    in
    response to your item number 1. This should be the case there as
    well.
    If
    your "mobile" object is in the same partition where the serviceobject
    he is
    calling resides, you should get a handle to the local instance ofthe
    service object.
    Here is the catch, if you make a bind object call and there is no
    local
    copy
    you will get a handle to a remote copy but you can not be sure which
    one!
    It end ups as more or less a random selection. Off the top of myhead
    and
    without going to the doc, I am pretty sure that when you register an
    anchored object you can not limit it's visibility to "User".
    Sean
    -----Original Message-----
    From: [email protected]
    [<a href=
    "mailto:[email protected]]On">mailto:[email protected]]On</a> Behalf Of David Foote
    Sent: Monday, June 22, 1998 4:51 PM
    To: [email protected]
    Subject: multiple named objects with the same name and interface
    All,
    More than once, I have wished that Forte allowed you to place named
    objects with the same name in more than one partition. There aretwo
    situations in which this seems desirable:
    1) Objects that are not distributed, but are mobile (passed by value
    to
    remote objects), cannot safely reference a Service Object unless it
    has
    environment visibility, but this forces the overhead of a remote
    method
    call when it might not otherwise be necessary. If it were possibleto
    place a copy of the same Service Object (with user visibility) ineach
    partition, the overhead of a remote method call could be avoided.
    This
    would only be useful for a service object whose state could besafely
    replicated.
    2) My second scenario also involves mobile objects referencing a
    Service
    Object, but this time I would like the behavior of the calledService
    Object to differ with the partition from which it is called.
    This could be accomplished by placing Service Objects with the same
    name
    and the same interface in each partition, but varying the
    implementation
    with the partition.
    Does anyone have any thoughts about why this would be a good thingor
    a
    bad thing?
    David N. Foote
    Consultant
    Alexander Ananiev
    Claremont Technology Group
    916-558-4127
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href="http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >
    >
    >
    Alexander Ananiev
    Claremont Technology Group
    916-558-4127
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

    Albert,
    In my case I was using a named anchored object to get a handle to an actual
    service object. My named object that I registered in the name service was
    an intermediary to which I did not maintain a connection. So I have not
    explicitly tested what you are asking.
    However, I too was not using a hard coded reference to the SO, and fail over
    and load balancing worked fine. The functions of fail over and load
    balancing are not done by the service object but by the name service, proxy
    and router. Since you are getting a proxy back any time you do a lookup in
    the name service I would think that fail over should work with any anchored
    object that is registered in the name service. When you do a RegisterObject
    call you will notice that one of the arguments is the session duration,
    which implies to me that fail over will be handled the same as for service
    objects.
    Load balancing adds another wrinkle. Load balancing is handled by a router.
    You must get a proxy to the router and not a proxy to an instance of the
    object that the router is doing the load balancing for. In the latter
    scenario you will be bypassing the router. If you are creating, anchoring
    and registering your objects dynamically you will not have a router so you
    will not be able to load balance! This applies even if the objects are
    instantiated within partitions that are load balanced because you will still
    be getting proxies back to a particular instance of the anchored objects.
    There are ways to accomplish load balancing between objects that you
    register yourself. However, the best solution will vary depending on the
    actual problem trying to be solved. If you would like to discuss this
    further, include a little more detail about the scenario you need to
    implement and I will give you what I know.
    BTY what I have outlined above also applies to getting references via a
    system agent.
    Sean
    Cornice Consulting, Inc.
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Albert Dijk
    Sent: Friday, July 03, 1998 11:01 AM
    To: [email protected]
    Subject:
    Alex, David, Jez, Sean,...
    My question about both solutions (using Nameservice and agents) is:
    If I reach a remote service object using either a BindObject or an agent, do
    fail-over and load-balancing work the same way as they normally do when
    using a hard coded reference to the SO.
    Albert Dijk
    From: Sean Brown[SMTP:[email protected]]
    Reply To: [email protected]
    Sent: Thursday, June 25, 1998 6:55 AM
    To: Ananiev, Alex; [email protected]
    Subject: RE: multiple named objects with the same name and
    interface
    Alexander,
    I can not comment on the speed difference because I never tested it.
    But, I
    will say that we looked at the agent solution at a client sight
    before. I
    will give the same warning I gave them. If you go the agent direction
    you
    are now using agents for a purpose that they were not intended. Even
    though
    it technically works, as soon as you start using a piece of
    functionality in
    a way the developer did not intend it to be used you run the risk of
    forward
    compatibility problems. By this I mean, since agents were not
    originally
    intended to be used to look up service / anchored object references,
    it may
    not work in the future because it is not likely to be given
    consideration in
    any future design.
    As we all know, programmers are always stretching the bounds of the
    tools
    they use and you may have a good reason (i.e. performance). I just
    wanted to
    let you know the possible risk.
    One final note on a limitation of using system agents to obtain
    references
    to anchored objects. You can not access agents across environments.
    So, if
    you have connected environments and need to get references to services
    in
    another environment for fail-over or whatever, you will not be able to
    do it
    with agents.
    Just some thoughts!
    Sean
    -----Original Message-----
    From: [email protected]
    [<a href="mailto:[email protected]]On">mailto:[email protected]]On</a> Behalf Of Ananiev, Alex
    Sent: Wednesday, June 24, 1998 12:14 PM
    To: '[email protected]'
    Subject: RE: multiple named objects with the same name and interface
    David,
    The problem with dynamic binding is that in this case you have to keep
    the reference to the service object somewhere. You don't want to call
    "bindObject" every time you need to use this service object, "bind" is
    a
    time-consuming operation, even on the same partition. Keeping
    reference
    could be undesirable if your object could be moved across partitions
    (e.g. business object).
    The alternative solution is to use agents. You can create custom
    agent,
    make it a subagent of an active partition agent and use it as a
    placeholder for whatever service you need. "FindSubAgent" works much
    faster than "bindObject", we verified that and agent is "user-visible"
    by its nature.
    Alexander
    From: "Sean Brown" <[email protected]>
    Date: Wed, 24 Jun 1998 09:12:55 -0500
    Subject: RE: multiple named objects with the same name and interface
    David,
    I actually determined it through testing. In my case I did not want
    this to
    happen and was trying to determine why it was happing. It makes sense
    if
    you think about it. Forte is trying to avoid making a remote method
    invocation if it can.
    Now, for anything more complex than looking locally first and if none
    is
    found give me any remote instance you can find, you will need to do
    more
    work. Using a naming scheme like Jez suggests below works well.
    Sean
    - -----Original Message-----
    From: Jez Sygrove [<a href="mailto:[email protected]">mailto:[email protected]</a>]
    Sent: Wednesday, June 24, 1998 4:34 AM
    To: [email protected]; 'David Foote'
    Cc: [email protected]
    Subject: RE: multiple named objects with the same name and interface
    David,
    there's a mechanism used within SCAFFOLDS that allows the
    location of the 'nearest' SO when more than one is available.
    It involves registering each duplicated SO under three dynamically
    built
    names. The names include the partition, the node or the environment
    name.
    When wishing to locate the nearest SO the BO builds a SO name using
    its
    own partition and asks the name service for that.
    If there is an SO registered under that name then it must be in the
    same
    partition and all is well. No cross partition calls.
    If not, then the BO builds the name using its node and asks the name
    service for that.
    This means that if there is an SO outside the BO partition but still
    on
    the same node then this can be used. Again, relatively 'local'.
    If neither of these work then the BO has to resort to an environment
    wide search.
    It may be that this approach could be adapted / adopted; I like it's
    ingenuity.
    Cheers,
    Jez
    From: David Foote[SMTP:[email protected]]
    Reply To: David Foote
    Sent: 24 June 1998 03:17
    To: [email protected]
    Cc: [email protected]
    Subject: RE: multiple named objects with the same name and
    interface
    Sean,
    First, thank you for your response. I have wondered about this fora
    long time.
    I looked at the documentation for ObjectLocationManager and on page
    327
    of the Framework Library and AppletSupport Library Guide indescribing
    the BindObject method Forte says:
    "The name service allows more than one anchored object (from
    different
    partitions) to be registered in the name service under the same
    registration name. When you invoke the BindObject method with a
    request
    for a name that has duplicate registration entries, the BindObject
    method finds an entry corresponding to an active partition, skipping
    any
    entries that do not. If no such active partition is found, or if the
    requested name is not found in the name service registry, a
    RemoteAccessException will be raised when the BindObject method is
    invoked."
    My question is: How did you discover that in the case of duplicate
    registrations the naming service will return the local object if one
    exists? This is not apparent from the documentation I have quoted.
    Is
    it documented elsewhere? Or did you determine it empirically?
    David N. Foote,
    Consultant
    ----Original Message Follows----
    David,
    First I will start by saying that this can be done by using named
    anchored
    objects and registering them yourself in the name service. There is
    documentation on how to do this. And by default you will get mostof
    the
    behavior you desire. When you do a lookup in the name service
    (BindObject
    method) it will first look in the local partition and see if thereis
    a
    local copy and give you that copy. By anchoring the object and
    manually
    registering it in the name service you are programmatically creating
    your
    own SO without defining it as such in the development environment.
    BTW
    in
    response to your item number 1. This should be the case there as
    well.
    If
    your "mobile" object is in the same partition where the serviceobject
    he is
    calling resides, you should get a handle to the local instance ofthe
    service object.
    Here is the catch, if you make a bind object call and there is no
    local
    copy
    you will get a handle to a remote copy but you can not be sure which
    one!
    It end ups as more or less a random selection. Off the top of myhead
    and
    without going to the doc, I am pretty sure that when you register an
    anchored object you can not limit it's visibility to "User".
    Sean
    -----Original Message-----
    From: [email protected]
    [<a href=
    "mailto:[email protected]]On">mailto:[email protected]]On</a> Behalf Of David Foote
    Sent: Monday, June 22, 1998 4:51 PM
    To: [email protected]
    Subject: multiple named objects with the same name and interface
    All,
    More than once, I have wished that Forte allowed you to place named
    objects with the same name in more than one partition. There aretwo
    situations in which this seems desirable:
    1) Objects that are not distributed, but are mobile (passed by value
    to
    remote objects), cannot safely reference a Service Object unless it
    has
    environment visibility, but this forces the overhead of a remote
    method
    call when it might not otherwise be necessary. If it were possibleto
    place a copy of the same Service Object (with user visibility) ineach
    partition, the overhead of a remote method call could be avoided.
    This
    would only be useful for a service object whose state could besafely
    replicated.
    2) My second scenario also involves mobile objects referencing a
    Service
    Object, but this time I would like the behavior of the calledService
    Object to differ with the partition from which it is called.
    This could be accomplished by placing Service Objects with the same
    name
    and the same interface in each partition, but varying the
    implementation
    with the partition.
    Does anyone have any thoughts about why this would be a good thingor
    a
    bad thing?
    David N. Foote
    Consultant
    Alexander Ananiev
    Claremont Technology Group
    916-558-4127
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:<a href="http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    >
    >
    >
    Alexander Ananiev
    Claremont Technology Group
    916-558-4127
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:<a href=
    "http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>

  • RE: forte-users-digest V1 #322

    Re: "We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated." from Van Vuong
    <[email protected]>
    This was in regards to copying a set of object from a server to client.
    An implicit clone is being done. This also copyies objects they want to
    remain on the server.
    I believe the normal method of doing this is to anchor the server side
    objects. Then when the deep clone occurs, it stops at the anchored
    objects generating a proxy. That can also have other affects you do not
    want but will at least stop the copying.
    From: owner-forte-users-digest
    Sent: Tuesday, April 15, 1997 8:09 AM
    To: forte-users-digest
    Subject: forte-users-digest V1 #322
    forte-users-digest Tuesday, 15 April 1997 Volume 01 :
    Number 322
    How does deep copy apply to arrays?
    Re: Global Variables
    Re: Global Variables
    Using the Edit commands in a menu
    Re: Global Variables
    Re: How does deep copy apply to arrays?
    From: Van Vuong <[email protected]>
    Date: Mon, 14 Apr 1997 17:16:46 -0500
    Subject: How does deep copy apply to arrays?
    I have a service object that has a method that returns an array of
    objects. The return type for the method is defined with the copy option.
    I found documentation that states that the copy option creates a deep
    copy of the return variable on the partition that called the method.
    My question is: If the return type for the method is an array of
    objects, will the copy option create copies of all objects/elements in
    the array?
    We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated.
    Thanks in advance,
    Van Vuong
    Phone: 972.985.5289
    Pager: 972.320.2232
    VoiceNow Pager: 972.330.0822
    E-mail: [email protected]
    PAGE NET
    From: David Bell <[email protected]>
    Date: Mon, 14 Apr 1997 22:44:19 +0000
    Subject: Re: Global Variables
    I got so much mail about and the object location manager, so
    I'll continue ...
    To make the thing truly portable, regardless of partition,
    you need to register the object with a name that is made
    up on the fly.
    The easisest way to do this is to make up a name composed of
    nodename (hopefully unique) plus the process ID. This should
    guarantee that you get to the correct object even if there are
    several instances around.
    Get the nodename from the operating system, then use the partition
    agent to ask for the PID. Form a unique name by concatenating these
    two piecies of information.
    // set up this app's subdirectory namespace
    ObjName : TextData = new(Value = '/MyApp/');
    // add nodename
    ObjName.Concat(task.part.operatingsystem.nodename);
    // get PID
    Partition : ActivePartitionAgent
    = ActivePartitionAgent(task.part.ActPartAgent);
    Instrument : ConfigValueInst
    = ConfigValueInst(Partition.FindInstrument('ProcessID'));
    // add PID to name
    Objname.Concat(Instrument.GetData.TextValue);
    Now register an anchored object with the object location
    manager
    // get the object location manager
    olm : ObjectLocationMgr;
    olm = task.Part.ObjectLocationMgr;
    // register my object with the name
    olm.RegisterObject(name = Objname, object = MyObj);
    Once it's registered, ask the object location manager for a handle
    so we can use it. Build the name, get hold of the object
    location manager, as above, then invoke BindObject on it.
    theObj =
    (ClassOfMyObj)(olm.BindObject(name=Objname, classType=ClassOfMyObj));
    If the names are formed in the same way, this call should return
    a handle to the object of message duration - you can set up
    session or transaction duration if required in the RegisterObject
    call.
    In some versions of Forte, before V.2.F.0, this call not work for
    objects located in the same partition.
    To get at the instruments, you will need to include the SystemMonitor
    Library.
    To come back to some other points, as Tom Wynant points out, you can
    have a user visible service object in a server partition.
    The problem comes when what you really want is the same user visible
    service object in lots of different partitions so that you can offer
    the same service - but locally.
    Today there is no way to do this oustide of client partitions without
    resorting to something similar to that presented above.
    - David
    David Bell Tel : +44 1344 482100
    Voice mail : +44 1344 353716
    Forte Software Limited Mobile : +44 378 300613
    Apex House
    London Road Email : mailto: [email protected]
    Bracknell Web : http://www.forte.com
    Berkshire
    RG12 2XH
    UK
    From: Pierre Gelli <[email protected]>
    Date: Tue, 15 Apr 1997 09:09:39 +0200
    Subject: Re: Global Variables
    Hello folks,
    Here is my idea on the topic.
    Although one normally doesn't need global variables in a OO system, there
    are cases when it's useful : a read cache of data available in the local
    active partition. This saves the overhead of accessing the data on a
    remote=
    SO.
    I read the solutions described by David Bell (location manager) and David
    Krieger (hack of the partition.appTitle).
    There is another way I think is a bit cleaner.
    It takes benefit of the fact that a custom system agent can be attached
    an
    object (in our case the local cache containing the global variables).
    Any active partition of the application then contains one such custom
    agent.
    Any class needing a global variable instantiates a small object, which is
    a
    manager of the custom agent. Its purpose is to ask the active partition
    for
    the custom agent, and then for the cache. If the agent doesn't exist it
    creates it as well has the local cache; if the agent exists, it returns
    the
    cache.
    There is a cache class.
    It is derived into one class to be the "cache server" broadcasting an
    event
    when some cache data changes. This class is used to create a cache
    server=
    SO.
    The cache class is also derived into a "local cache" class. It knows how
    to
    initialize it from the cache server. It listens to the event for updating
    its local data from the cache server SO when needed.
    Enough for the machinery.
    Then, for any instance of a class that needs a global variable,
    only two lines of code are needed, at initialization time, to get a
    reference to the local cache of the partition, then a global variable
    isaccessed as if part of a local object. This is quite affordable.
    This design guaranties that there is automatically one and only one
    up-to-date cache object in any active partition (running on a client or
    on a
    server). The local cache is seen as a local object by all objects that
    use
    it (no SO there). This design makes no assumption on the partitioning
    that
    will take place later. Which is I think one key strength of Fort=E9.
    If one is interested I can ship some code that illustrates these ideas.
    Hope this helps.
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99
    From: Bryan Gentile <[email protected]>
    Date: Tue, 15 Apr 1997 09:01:35 -0400
    Subject: Using the Edit commands in a menu
    I was wondering if anyone knows how to code for the edit menu submenu
    items
    like cut, copy, and paste. I am trying to use these in my menu, but I
    cannot find anything about how to code for them. Is there anything in
    the
    help or any examples to look at. I have been unsuccessful in finding
    anything about this.
    Thanks
    From: [email protected]
    Date: Tue, 15 Apr 1997 9:08:01 -0400 (EDT)
    Subject: Re: Global Variables
    [email protected] writes:
    <Snip!>
    Unfortunately all Forte Service Objects share a single name
    space. I thought from the documentation that User Visible
    Service Objects would work for me. However, when I tried User
    Visible Service Objects, they didn't quite do the trick because
    what I wanted was identically named service objects that resolve
    to a different local instance for each partition.You're right. You can put the user-visible service object in any
    partition you like, but it must go in one and only one
    partition. Rats. I can see why it's this way (based on the
    minimal implementation of the name server), but I can think of
    some good reasons why it shouldn't be. In fact, I may need to
    move some methods around based on this discussion. Again, rats!
    Tom Wyant
    "The greatest danger of communication is the illusion that it has
    occurred." (wish I knew who said that!).
    From: [email protected]
    Date: Tue, 15 Apr 1997 09:54:10 -0500
    Subject: Re: How does deep copy apply to arrays?
    Copy option always copies deep. Remember, also if you pass the array
    accross partitions, whether you specify copy or not, it is going to copy
    and copy deep.
    In an array, I am not sure if have the problem, because unless the array
    in-turn holds a huge tree, the array object may be wide, but not deep.
    Some thing to think about??
    Venkat
    End of forte-users-digest V1 #322
    *********************************

    Re: "We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated." from Van Vuong
    <[email protected]>
    This was in regards to copying a set of object from a server to client.
    An implicit clone is being done. This also copyies objects they want to
    remain on the server.
    I believe the normal method of doing this is to anchor the server side
    objects. Then when the deep clone occurs, it stops at the anchored
    objects generating a proxy. That can also have other affects you do not
    want but will at least stop the copying.
    From: owner-forte-users-digest
    Sent: Tuesday, April 15, 1997 8:09 AM
    To: forte-users-digest
    Subject: forte-users-digest V1 #322
    forte-users-digest Tuesday, 15 April 1997 Volume 01 :
    Number 322
    How does deep copy apply to arrays?
    Re: Global Variables
    Re: Global Variables
    Using the Edit commands in a menu
    Re: Global Variables
    Re: How does deep copy apply to arrays?
    From: Van Vuong <[email protected]>
    Date: Mon, 14 Apr 1997 17:16:46 -0500
    Subject: How does deep copy apply to arrays?
    I have a service object that has a method that returns an array of
    objects. The return type for the method is defined with the copy option.
    I found documentation that states that the copy option creates a deep
    copy of the return variable on the partition that called the method.
    My question is: If the return type for the method is an array of
    objects, will the copy option create copies of all objects/elements in
    the array?
    We wish to eliminate any object references to the service object's
    partition. Any insight would be greatly appreciated.
    Thanks in advance,
    Van Vuong
    Phone: 972.985.5289
    Pager: 972.320.2232
    VoiceNow Pager: 972.330.0822
    E-mail: [email protected]
    PAGE NET
    From: David Bell <[email protected]>
    Date: Mon, 14 Apr 1997 22:44:19 +0000
    Subject: Re: Global Variables
    I got so much mail about and the object location manager, so
    I'll continue ...
    To make the thing truly portable, regardless of partition,
    you need to register the object with a name that is made
    up on the fly.
    The easisest way to do this is to make up a name composed of
    nodename (hopefully unique) plus the process ID. This should
    guarantee that you get to the correct object even if there are
    several instances around.
    Get the nodename from the operating system, then use the partition
    agent to ask for the PID. Form a unique name by concatenating these
    two piecies of information.
    // set up this app's subdirectory namespace
    ObjName : TextData = new(Value = '/MyApp/');
    // add nodename
    ObjName.Concat(task.part.operatingsystem.nodename);
    // get PID
    Partition : ActivePartitionAgent
    = ActivePartitionAgent(task.part.ActPartAgent);
    Instrument : ConfigValueInst
    = ConfigValueInst(Partition.FindInstrument('ProcessID'));
    // add PID to name
    Objname.Concat(Instrument.GetData.TextValue);
    Now register an anchored object with the object location
    manager
    // get the object location manager
    olm : ObjectLocationMgr;
    olm = task.Part.ObjectLocationMgr;
    // register my object with the name
    olm.RegisterObject(name = Objname, object = MyObj);
    Once it's registered, ask the object location manager for a handle
    so we can use it. Build the name, get hold of the object
    location manager, as above, then invoke BindObject on it.
    theObj =
    (ClassOfMyObj)(olm.BindObject(name=Objname, classType=ClassOfMyObj));
    If the names are formed in the same way, this call should return
    a handle to the object of message duration - you can set up
    session or transaction duration if required in the RegisterObject
    call.
    In some versions of Forte, before V.2.F.0, this call not work for
    objects located in the same partition.
    To get at the instruments, you will need to include the SystemMonitor
    Library.
    To come back to some other points, as Tom Wynant points out, you can
    have a user visible service object in a server partition.
    The problem comes when what you really want is the same user visible
    service object in lots of different partitions so that you can offer
    the same service - but locally.
    Today there is no way to do this oustide of client partitions without
    resorting to something similar to that presented above.
    - David
    David Bell Tel : +44 1344 482100
    Voice mail : +44 1344 353716
    Forte Software Limited Mobile : +44 378 300613
    Apex House
    London Road Email : mailto: [email protected]
    Bracknell Web : http://www.forte.com
    Berkshire
    RG12 2XH
    UK
    From: Pierre Gelli <[email protected]>
    Date: Tue, 15 Apr 1997 09:09:39 +0200
    Subject: Re: Global Variables
    Hello folks,
    Here is my idea on the topic.
    Although one normally doesn't need global variables in a OO system, there
    are cases when it's useful : a read cache of data available in the local
    active partition. This saves the overhead of accessing the data on a
    remote=
    SO.
    I read the solutions described by David Bell (location manager) and David
    Krieger (hack of the partition.appTitle).
    There is another way I think is a bit cleaner.
    It takes benefit of the fact that a custom system agent can be attached
    an
    object (in our case the local cache containing the global variables).
    Any active partition of the application then contains one such custom
    agent.
    Any class needing a global variable instantiates a small object, which is
    a
    manager of the custom agent. Its purpose is to ask the active partition
    for
    the custom agent, and then for the cache. If the agent doesn't exist it
    creates it as well has the local cache; if the agent exists, it returns
    the
    cache.
    There is a cache class.
    It is derived into one class to be the "cache server" broadcasting an
    event
    when some cache data changes. This class is used to create a cache
    server=
    SO.
    The cache class is also derived into a "local cache" class. It knows how
    to
    initialize it from the cache server. It listens to the event for updating
    its local data from the cache server SO when needed.
    Enough for the machinery.
    Then, for any instance of a class that needs a global variable,
    only two lines of code are needed, at initialization time, to get a
    reference to the local cache of the partition, then a global variable
    isaccessed as if part of a local object. This is quite affordable.
    This design guaranties that there is automatically one and only one
    up-to-date cache object in any active partition (running on a client or
    on a
    server). The local cache is seen as a local object by all objects that
    use
    it (no SO there). This design makes no assumption on the partitioning
    that
    will take place later. Which is I think one key strength of Fort=E9.
    If one is interested I can ship some code that illustrates these ideas.
    Hope this helps.
    Pierre Gelli
    ADP GSI
    Payroll and Human Resources Management
    72-78, Grande Rue, F-92310 SEVRES
    phone : +33 1 41 14 86 42 (direct) +33 1 41 14 85 00 (reception desk)
    fax : +33 1 41 14 85 99
    From: Bryan Gentile <[email protected]>
    Date: Tue, 15 Apr 1997 09:01:35 -0400
    Subject: Using the Edit commands in a menu
    I was wondering if anyone knows how to code for the edit menu submenu
    items
    like cut, copy, and paste. I am trying to use these in my menu, but I
    cannot find anything about how to code for them. Is there anything in
    the
    help or any examples to look at. I have been unsuccessful in finding
    anything about this.
    Thanks
    From: [email protected]
    Date: Tue, 15 Apr 1997 9:08:01 -0400 (EDT)
    Subject: Re: Global Variables
    [email protected] writes:
    <Snip!>
    Unfortunately all Forte Service Objects share a single name
    space. I thought from the documentation that User Visible
    Service Objects would work for me. However, when I tried User
    Visible Service Objects, they didn't quite do the trick because
    what I wanted was identically named service objects that resolve
    to a different local instance for each partition.You're right. You can put the user-visible service object in any
    partition you like, but it must go in one and only one
    partition. Rats. I can see why it's this way (based on the
    minimal implementation of the name server), but I can think of
    some good reasons why it shouldn't be. In fact, I may need to
    move some methods around based on this discussion. Again, rats!
    Tom Wyant
    "The greatest danger of communication is the illusion that it has
    occurred." (wish I knew who said that!).
    From: [email protected]
    Date: Tue, 15 Apr 1997 09:54:10 -0500
    Subject: Re: How does deep copy apply to arrays?
    Copy option always copies deep. Remember, also if you pass the array
    accross partitions, whether you specify copy or not, it is going to copy
    and copy deep.
    In an array, I am not sure if have the problem, because unless the array
    in-turn holds a huge tree, the array object may be wide, but not deep.
    Some thing to think about??
    Venkat
    End of forte-users-digest V1 #322
    *********************************

  • RE: (forte-users) FW: (forte-users)

    Hi there
    Thanks very much for the solution - just wanted to let you know . We
    implemented the design that technote 11378 suggested .
    It worked .
    Thanks very much
    Cheers
    Jen
    -----Original Message-----
    From: Adamek, Zenon [mailto:ZAdamekpurolator.com]
    Sent: Tuesday, 20 March, 2001 9:21 PM
    To: 'forte-userslists.xpedior.com'
    Subject: (forte-users) FW: (forte-users)
    Hi David,
    The problem is that the SO uses an attribute of its class ACBAccount as
    the ObjectReference pointer. SO is not a stateless object. The possible
    scenario before crash can be that client A and B calls SO at the same
    time. A's thread creates ACBAccount gets the ObjectReference. At this
    point B's thread is activated, does the same as A creates new
    ObjectReference. Probably the next switch between A and B will be in the
    Connect() (B should wait for OLE server). If A is reactivated it doesn't
    get the original own reference but the B's reference. It can cause the
    crash and means that a thread can use reference created in some other
    thread.
    Regards,
    Zenon
    -----Original Message-----
    From: David McPaul [SMTP:dmcpaullumley.com.au]
    Sent: Monday, March 19, 2001 11:52 PM
    To: 'forte-userslists.xpedior.com'
    Subject: RE: (forte-users)
    Jenni,
    As Zenon has pointed out, technote 11378 talks about problems that
    can occur if the calls made to an OLE object are not from within the same
    thread the OLE object was created in. It goes on to show a design to
    avoid
    this.
    However, the code you have given DOES communicate to the OLE object
    in the same thread as it was created. So the problem as I see it is more
    likely to be that the OLE object is not being garbage collected. Although
    you do explicitly NIL out the ACBAccount object there is a technote 12453
    that deals with the need to set the ObjectReference of CDispatch objects
    to
    NIL to allow the OLE object to be completely reclaimed by the garbage
    collector. Failure to do so when using code that creates a new OLE object
    every time you ask for an account validation will eventually run the
    partition out of memory.
    As pointed out in a previous post you can also increase
    FORTE_STACK_SIZE but this will delay the problem not correct it.
    Rather than create the connection each time you may want to think
    about redesigning the method as shown in tech note 11378.
    Cheers
    David
    -----Original Message-----
    From: Adamek, Zenon [mailto:ZAdamekpurolator.com]
    Sent: Tuesday, March 20, 2001 5:05 AM
    To: 'Els, Jenni'
    Cc: 'forte-userslists.xpedior.com'
    Subject: RE: (forte-users)
    Hi Jenni,
    The most important issue by designing an OLE connection between a Forte
    server partition and an OLE component is taking into account that an OLE
    object can be referenced from the NT thread in Forte partition that it was
    created in. It is the reason that you have no problems with your mini-app
    in
    single-threaded version.
    This problem is discussed in the Technote 11378. You can find a workaround
    for your problem there, too.
    Regards,
    Zenon
    -----Original Message-----
    From: Els, Jenni [SMTP:JElsnbs.co.za]
    Sent: Monday, March 19, 2001 2:28 AM
    To: 'forte-userslists.xpedior.com'
    Subject: (forte-users)
    Hi there
    We have this situation
    We are calling a Service Object (in the server partition) from ourclient
    partition.This service object calls a method which calls a DLLregistered
    on our server (VB code) . This VB code access a database on anotherserver
    .(DSN set up on our server ).The database is sql server .
    We are having the problem where for about 3 hours in the morning , the
    system works perfectly. We then get a segmentation violation on this
    partition . When we run interpreted we can see that this is an OLEinvoked
    exception. The partition does not always show as offline in econsole
    and
    because it does not , we cannot 'online' another . We cannot take the
    entire app down as everything hangs . Eventually our technical depthas
    to
    down the server
    We set up a mini-app looping through and calling the DLL to simulate
    the
    problem . It worked fine. When we put another asynchronous task in the
    method to call the service object , it erred quite soon. We thencreate
    an
    attribute of type mutex and locked using that. The mini-app worked.
    However our app in development eventually hanged (without the
    partition
    coming though) .
    The service Object is an environment visible service object in asingle
    (non-replicated partition) . It has a dialog duration = session .
    In the project is
    ACB : ACBObject
    ACBObject : CDispatch (shared = disallowed , distributed =
    disallowed, transactional = disallowed, monitored = allowed)
    ACBValidator : Object (shared = allowed , distributed =allowed,
    transactional = disallowed, monitored = disallowed)
    ACBVaidatorSO : ACBValidator
    In this method we have this code to call the DLL
    self.ACBAccount = new;
    self.ACBAccount.CreateUsingCLSID(classID='{2EFD3084-7B05-11D3-857F-00105A4
    8CEA0}');
    pErrorMessage = new;
    acbaccount.BankCode = pBankCode.value;
    acbaccount.BranchCode = pBranchCode.value;
    at : VariantI2 = new;
    at.Value = pAccountType.Value;
    acbaccount.AccountType = at.Value;
    acbaccount.AccountNo = pAccountNo.value;
    begin
    acbaccount.Connect();
    exception
    when e : GenericException do
    ex : GenericException = new;
    ex.SetWithParams(severity = SP_ER_ERROR,
    message = 'There was an error connecting to the database');
    raise ex;
    end;
    begin
    err : i2 = acbaccount.ValidateAccount();
    if err != 0 then
    pErrorMessage.SetValue(acbaccount.ErrDescriptionStr(iErrorCode= err));
    acbaccount.Disconnect();
    return false;
    else
    pErrorMessage.SetValue('The account is
    valid!!');
    acbaccount.Disconnect();
    self.ACBAccount = NIL ;
    return true;
    end if;
    exception
    when e : GenericException do
    acbaccount.Disconnect();
    ex : GenericException = new;
    ex.SetWithParams(severity = SP_ER_ERROR,
    message = 'There was an error Validating the account');
    Task.ErrorMgr.AddError(ex);
    task.errormgr.ShowErrors();
    raise e;
    end;
    exception
    when e : GenericException do
    acbaccount.Disconnect();
    Task.ErrorMgr.ShowErrors();
    raise e;
    If anybody has any suggestions , they would be most welcome
    Thanks very much
    Cheers
    Jenni Els************************************************************************Th
    is e-mail is intended for the use of the individual or entity named above
    and may contain information that is confidential and privileged. If you
    are not the intended recipient, you are hereby notified that any
    dissemination, distribution or copying of this e-mail is strictly
    prohibited. If you have received this e-mail in error, please notify us
    immediately at helpdesklumley.com.au and destroy the original message.
    While this mail and any attachments have been scanned for common computer
    viruses and found to be virus free, we recommend you also perform your own
    virus checking processes before opening any attachments.
    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
    WARNING:
    Any unauthorised use or interception of this email is illegal. If this email
    is not intended for you, you may not copy, distribute nor disclose the
    contents to anyone. Save for bona fide company matters, the BoE Group does
    not accept any responsibility for the opinions expressed in this email.
    For further details please see: http://www.nbs.co.za/emaildisclaim.htm

    Hi there
    Thanks very much for the solution - just wanted to let you know . We
    implemented the design that technote 11378 suggested .
    It worked .
    Thanks very much
    Cheers
    Jen
    -----Original Message-----
    From: Adamek, Zenon [mailto:ZAdamekpurolator.com]
    Sent: Tuesday, 20 March, 2001 9:21 PM
    To: 'forte-userslists.xpedior.com'
    Subject: (forte-users) FW: (forte-users)
    Hi David,
    The problem is that the SO uses an attribute of its class ACBAccount as
    the ObjectReference pointer. SO is not a stateless object. The possible
    scenario before crash can be that client A and B calls SO at the same
    time. A's thread creates ACBAccount gets the ObjectReference. At this
    point B's thread is activated, does the same as A creates new
    ObjectReference. Probably the next switch between A and B will be in the
    Connect() (B should wait for OLE server). If A is reactivated it doesn't
    get the original own reference but the B's reference. It can cause the
    crash and means that a thread can use reference created in some other
    thread.
    Regards,
    Zenon
    -----Original Message-----
    From: David McPaul [SMTP:dmcpaullumley.com.au]
    Sent: Monday, March 19, 2001 11:52 PM
    To: 'forte-userslists.xpedior.com'
    Subject: RE: (forte-users)
    Jenni,
    As Zenon has pointed out, technote 11378 talks about problems that
    can occur if the calls made to an OLE object are not from within the same
    thread the OLE object was created in. It goes on to show a design to
    avoid
    this.
    However, the code you have given DOES communicate to the OLE object
    in the same thread as it was created. So the problem as I see it is more
    likely to be that the OLE object is not being garbage collected. Although
    you do explicitly NIL out the ACBAccount object there is a technote 12453
    that deals with the need to set the ObjectReference of CDispatch objects
    to
    NIL to allow the OLE object to be completely reclaimed by the garbage
    collector. Failure to do so when using code that creates a new OLE object
    every time you ask for an account validation will eventually run the
    partition out of memory.
    As pointed out in a previous post you can also increase
    FORTE_STACK_SIZE but this will delay the problem not correct it.
    Rather than create the connection each time you may want to think
    about redesigning the method as shown in tech note 11378.
    Cheers
    David
    -----Original Message-----
    From: Adamek, Zenon [mailto:ZAdamekpurolator.com]
    Sent: Tuesday, March 20, 2001 5:05 AM
    To: 'Els, Jenni'
    Cc: 'forte-userslists.xpedior.com'
    Subject: RE: (forte-users)
    Hi Jenni,
    The most important issue by designing an OLE connection between a Forte
    server partition and an OLE component is taking into account that an OLE
    object can be referenced from the NT thread in Forte partition that it was
    created in. It is the reason that you have no problems with your mini-app
    in
    single-threaded version.
    This problem is discussed in the Technote 11378. You can find a workaround
    for your problem there, too.
    Regards,
    Zenon
    -----Original Message-----
    From: Els, Jenni [SMTP:JElsnbs.co.za]
    Sent: Monday, March 19, 2001 2:28 AM
    To: 'forte-userslists.xpedior.com'
    Subject: (forte-users)
    Hi there
    We have this situation
    We are calling a Service Object (in the server partition) from ourclient
    partition.This service object calls a method which calls a DLLregistered
    on our server (VB code) . This VB code access a database on anotherserver
    .(DSN set up on our server ).The database is sql server .
    We are having the problem where for about 3 hours in the morning , the
    system works perfectly. We then get a segmentation violation on this
    partition . When we run interpreted we can see that this is an OLEinvoked
    exception. The partition does not always show as offline in econsole
    and
    because it does not , we cannot 'online' another . We cannot take the
    entire app down as everything hangs . Eventually our technical depthas
    to
    down the server
    We set up a mini-app looping through and calling the DLL to simulate
    the
    problem . It worked fine. When we put another asynchronous task in the
    method to call the service object , it erred quite soon. We thencreate
    an
    attribute of type mutex and locked using that. The mini-app worked.
    However our app in development eventually hanged (without the
    partition
    coming though) .
    The service Object is an environment visible service object in asingle
    (non-replicated partition) . It has a dialog duration = session .
    In the project is
    ACB : ACBObject
    ACBObject : CDispatch (shared = disallowed , distributed =
    disallowed, transactional = disallowed, monitored = allowed)
    ACBValidator : Object (shared = allowed , distributed =allowed,
    transactional = disallowed, monitored = disallowed)
    ACBVaidatorSO : ACBValidator
    In this method we have this code to call the DLL
    self.ACBAccount = new;
    self.ACBAccount.CreateUsingCLSID(classID='{2EFD3084-7B05-11D3-857F-00105A4
    8CEA0}');
    pErrorMessage = new;
    acbaccount.BankCode = pBankCode.value;
    acbaccount.BranchCode = pBranchCode.value;
    at : VariantI2 = new;
    at.Value = pAccountType.Value;
    acbaccount.AccountType = at.Value;
    acbaccount.AccountNo = pAccountNo.value;
    begin
    acbaccount.Connect();
    exception
    when e : GenericException do
    ex : GenericException = new;
    ex.SetWithParams(severity = SP_ER_ERROR,
    message = 'There was an error connecting to the database');
    raise ex;
    end;
    begin
    err : i2 = acbaccount.ValidateAccount();
    if err != 0 then
    pErrorMessage.SetValue(acbaccount.ErrDescriptionStr(iErrorCode= err));
    acbaccount.Disconnect();
    return false;
    else
    pErrorMessage.SetValue('The account is
    valid!!');
    acbaccount.Disconnect();
    self.ACBAccount = NIL ;
    return true;
    end if;
    exception
    when e : GenericException do
    acbaccount.Disconnect();
    ex : GenericException = new;
    ex.SetWithParams(severity = SP_ER_ERROR,
    message = 'There was an error Validating the account');
    Task.ErrorMgr.AddError(ex);
    task.errormgr.ShowErrors();
    raise e;
    end;
    exception
    when e : GenericException do
    acbaccount.Disconnect();
    Task.ErrorMgr.ShowErrors();
    raise e;
    If anybody has any suggestions , they would be most welcome
    Thanks very much
    Cheers
    Jenni Els************************************************************************Th
    is e-mail is intended for the use of the individual or entity named above
    and may contain information that is confidential and privileged. If you
    are not the intended recipient, you are hereby notified that any
    dissemination, distribution or copying of this e-mail is strictly
    prohibited. If you have received this e-mail in error, please notify us
    immediately at helpdesklumley.com.au and destroy the original message.
    While this mail and any attachments have been scanned for common computer
    viruses and found to be virus free, we recommend you also perform your own
    virus checking processes before opening any attachments.
    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
    WARNING:
    Any unauthorised use or interception of this email is illegal. If this email
    is not intended for you, you may not copy, distribute nor disclose the
    contents to anyone. Save for bona fide company matters, the BoE Group does
    not accept any responsibility for the opinions expressed in this email.
    For further details please see: http://www.nbs.co.za/emaildisclaim.htm

  • How to close one browser window and return to a named anchor on a page in another window

    I'm working on a website that has several book images at the bottom of each page. I have set it up so when the user clicks on a book another smaller browser window opens up with a description of the book. At the bottom of book description window, I have a close button which I added the window.close() behavior to. But I'd like to not just have the window close but return the user to the bottom of the original page where I have the books, an area that I have applied a named anchor to. Any ideas on how I can get this done.
    I'd appreciate any and all help.

    I haven't tried to customize this lightbox extension much.  But I'm pretty sure the size of the box is pre-determined by image size.  Bigger image, bigger box.  And that is coded into one of the Lightbox javascript libraries.
    As to placing a link in the caption, sure.  Just paste your html link code into the Lightbox Caption Panel like so.
    <a href="http://amazon.com"> Buy now from Amazon</a>
    There is much more detailed information about Lightbox and how it works at the huddled together website.
    http://www.huddletogether.com/projects/lightbox/
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists
    www.alt-web.com/
    www.twitter.com/altweb

  • Named Anchors not working in Apple Mail

    Hi... we have an HTML Email Newsletter. About 2 months ago the named anchors (links) from the top to different parts of the email stopped working right. For years, named anchors would simply go to the section of the email that you desired. The location of the anchor would appear at the top of the email window. Recently, the links have still worked, but Apple Mail would put the location at the bottom of the email, requiring the user to scroll down to see the content. And even more recently, now we have to double-click the link at the top to get it to work, and still incorrectly.
    At first, this seemed to only not work in system 10.6. But now it's working the same way in 10.5. I am surprised a web search hasn't found anyone else with this problem. It affects not only our emails, but any email that has a link from the top of the email to any other part of the email.
    Is this just a bug in Apple Mail or is there a fix? Thanks in advance!

    I have exactly this same problem - anchors now move the cursor so that the desired text is just off the bottom of the message window, and one has to scroll to see it.
    This is obviously an error - it is inconsistent with all web / anchor behavior I am familiar with.
    What's going on?????

  • Re: forte-users-digest V1 #89

    forte-users-digest Tuesday, 8 October 1996 Volume 01 : Number 089
    From: Alexander Ananiev <[email protected]>
    Date: Tue, 08 Oct 1996 16:36:14 -0500
    Subject: "Single DBSession" approach
    The standard Forte approach for the database access assumes
    that one DBSession handles requests from several users
    (clients), so the database connection is not associated with
    the particular user. This significantly impacts the
    architecture of the Forte application. Some of the problems
    caused by this approach are:
    1) An application-level security system should be developed
    instead of using the DBMS security system. Suffice it to say
    that application-level security system cannot provide the
    protection from back-door access to the database.
    2) The application cannot utilize the DBMS locking mechanism
    for the case when the record is retrieved to the client for
    editing purposes ("long" transaction).
    It means that SecurityManager and LockManager should be
    developed to resolve these problems. This does not seem to be
    very good solution because these objects are intended to repeat
    the functionality of the DBMS. And these parts of the
    application may become pretty complicated. For example, my
    project's experience shows that the development of the lock
    manager is not a trivial task and most likely this lock manager
    will be worse than the DBMS locking mechanism in terms of
    reliability and performance just because it acts as an outside
    program to the database. Besides, this approach could cause
    serious problems if the database can be updated by non-Forte
    applications (e.g., by some legacy system or batch process).
    "One DBSession per several users" approach makes sense if each
    user connection to the database is implemented as one
    server process.(Another good argument in favor of single
    DBsession is a heterogeneous environment where there is no
    stable connection to one database, but here I'm talking about a
    "regular" application that uses only one DBMS.) Since most of
    the time this process is idle, then, of course, decreasing the
    number of processes leads to better server utilization and
    performance. But by its sense, database connection is just the
    current transaction ID (with the user id, of course). So the
    connection could be just a number that should be passed to the
    DBMS along with each request and then DBMS can create a thread
    to handle the request or forward it to the next available
    process if it does not support multithreading.
    DBMS vendors realize this and some of them already implemented
    this approach (I know that Oracle and Informix did that and
    Sybase was mentioned in the recent "one-threaded DBSession"
    discussion). And one-threaded DBSession that lives on the
    server doesn't fit well to that. The better approach would be
    to make DBSession the attribute of the TransactionHandle
    object, so the current connection will always be passed from
    the client to the service and this service can work through
    this connection.
    So, my point is that the application should let DBMS do its
    work and use as much of the functionality of the DBMS as
    possible and the "single DBsession" approach doesn't help it to
    do that.
    I would be glad to hear any other opinion on this topic. I
    think that the "DBsession" problem is extremely important for
    any multi-tier application (for example, all Web applications
    are facing this problem). I'm also interested in how people
    are dealing with this problem on other projects, for example if
    there are some projects where the alternative approach (one
    DBSession per each user) was implemented and what problems were
    encountered during that.
    Alexander Ananyev
    Price Waterhouse
    End of forte-users-digest V1 #89
    One of the first issues that needs to be addressed is that passing
    DBSessions from partition to partition is a huge performance hit. When
    Forte executes a SQL SELECT or FETCH statement on a DBSession that exists
    outside the current partition (DBSessions are "anchored" objects that are
    accessed via proxies.) Forte fetches the result set into the partition
    containing the DBSession and then passes proxies or creates copies into
    the partition where the SQL code is located. These are some of the
    largest performance hits you can take in Forte.

    forte-users-digest Tuesday, 8 October 1996 Volume 01 : Number 089
    From: Alexander Ananiev <[email protected]>
    Date: Tue, 08 Oct 1996 16:36:14 -0500
    Subject: "Single DBSession" approach
    The standard Forte approach for the database access assumes
    that one DBSession handles requests from several users
    (clients), so the database connection is not associated with
    the particular user. This significantly impacts the
    architecture of the Forte application. Some of the problems
    caused by this approach are:
    1) An application-level security system should be developed
    instead of using the DBMS security system. Suffice it to say
    that application-level security system cannot provide the
    protection from back-door access to the database.
    2) The application cannot utilize the DBMS locking mechanism
    for the case when the record is retrieved to the client for
    editing purposes ("long" transaction).
    It means that SecurityManager and LockManager should be
    developed to resolve these problems. This does not seem to be
    very good solution because these objects are intended to repeat
    the functionality of the DBMS. And these parts of the
    application may become pretty complicated. For example, my
    project's experience shows that the development of the lock
    manager is not a trivial task and most likely this lock manager
    will be worse than the DBMS locking mechanism in terms of
    reliability and performance just because it acts as an outside
    program to the database. Besides, this approach could cause
    serious problems if the database can be updated by non-Forte
    applications (e.g., by some legacy system or batch process).
    "One DBSession per several users" approach makes sense if each
    user connection to the database is implemented as one
    server process.(Another good argument in favor of single
    DBsession is a heterogeneous environment where there is no
    stable connection to one database, but here I'm talking about a
    "regular" application that uses only one DBMS.) Since most of
    the time this process is idle, then, of course, decreasing the
    number of processes leads to better server utilization and
    performance. But by its sense, database connection is just the
    current transaction ID (with the user id, of course). So the
    connection could be just a number that should be passed to the
    DBMS along with each request and then DBMS can create a thread
    to handle the request or forward it to the next available
    process if it does not support multithreading.
    DBMS vendors realize this and some of them already implemented
    this approach (I know that Oracle and Informix did that and
    Sybase was mentioned in the recent "one-threaded DBSession"
    discussion). And one-threaded DBSession that lives on the
    server doesn't fit well to that. The better approach would be
    to make DBSession the attribute of the TransactionHandle
    object, so the current connection will always be passed from
    the client to the service and this service can work through
    this connection.
    So, my point is that the application should let DBMS do its
    work and use as much of the functionality of the DBMS as
    possible and the "single DBsession" approach doesn't help it to
    do that.
    I would be glad to hear any other opinion on this topic. I
    think that the "DBsession" problem is extremely important for
    any multi-tier application (for example, all Web applications
    are facing this problem). I'm also interested in how people
    are dealing with this problem on other projects, for example if
    there are some projects where the alternative approach (one
    DBSession per each user) was implemented and what problems were
    encountered during that.
    Alexander Ananyev
    Price Waterhouse
    End of forte-users-digest V1 #89
    One of the first issues that needs to be addressed is that passing
    DBSessions from partition to partition is a huge performance hit. When
    Forte executes a SQL SELECT or FETCH statement on a DBSession that exists
    outside the current partition (DBSessions are "anchored" objects that are
    accessed via proxies.) Forte fetches the result set into the partition
    containing the DBSession and then passes proxies or creates copies into
    the partition where the SQL code is located. These are some of the
    largest performance hits you can take in Forte.

  • Re: (forte-users) No response from Router partition

    Sounds like what we have been experiencing here, on Unix.
    According to Fort&eacute;, upgrading to 3M should resolve it. Unfortunately, we
    can't
    confirm it yet, as we are in the process of upgrading and testing.
    I believe this is documented as an "internal" Fort&eacute; bug report.
    Hope this hels.
    Daniel D&eacute;sy
    BORN
    ----- Original Message -----
    From: "Pabbaraju, Ramarao (EXP N-IONIDEA)" <ramarao.pabbarajulmco.com>
    To: "Forte-Users (E-mail)" <forte-userslists.xpedior.com>
    Sent: Tuesday, November 14, 2000 10:46 AM
    Subject: (forte-users) No response from Router partition
    Hi All,
    One of the router partitions on NT server stops responding once in awhile. We can not get to it through escript or econsole and the only
    solution we have is to shutdown the ftexec using task manager and start
    the partition again. We don't see any error messages in the log except
    this line "LbRouter::AttachToRouter - Ignoring DOM version: -1 obj
    version: 0". Does anyone have any idea what this means? Is there any way
    to figure out the problem? We are using Forte 3L3. Thanks in advance.
    Thanks
    Ramarao--
    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

    My guess is, your third service object is not referenced.
    -----Original Message-----
    From: Forte App [mailto:forteapphotmail.com]
    Sent: Wednesday, May 17, 2000 3:08 PM
    To: kamranaminyahoo.com
    Subject: (forte-users) Partition problem
    Hello Everyone,
    I have three (3) service objects in my project and when i went into
    partition workshop i can only see two service objects instead of three and
    all the three service objects properties settings are same
    iam using Forte 3.0L2.
    Thanks in Advance
    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) (Fwd) ODBC & Dynamically Choosing aDatabase Ve ndor

    The error you are getting is saying that the data source is not correctly
    specified. Make sure the data source(or the name of the ODBC driver you
    created) is correctly specified in your code.
    ka
    -----Original Message-----
    From: Duncan Kinnear [mailto:[email protected]]
    Sent: Sunday, December 19, 1999 6:26 PM
    To: [email protected]
    Subject: (forte-users) (Fwd) ODBC & Dynamically Choosing a Database
    Vendor
    I am trying to dynamically create a DBSession to connect to the
    Microsft SQL Server ODBC Driver on a Forte Server Node.
    I have tested the ODBC connection on the Local Machine and it works fine.
    I have connected to the SQL Server on that machine with a Static
    DBSession Object and that works fine.
    I have used the same code to create a DBSession to Informix on Unix
    and that worked fine.
    The error I get is a converted ODBC one:
    SYSTEM ERROR: Attempt to load partition named TestWinProject_cl0_Part1
    failed.
    Class: qqsp_ResourceException
    Error #: [1001, 4]
    Detected at: qqrt_ForteExecAgent::LoadPartition at 2
    Error Time: Mon Dec 20 12:05:37
    Distributed method called: qqrt_ForteExecAgentProxy.LoadPartition!7
    (object name Unnamed) from partition "Node Manager", (partitionId =
    40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11c.38]) in application
    "System
    Manager", pid 250 on node ALLY in environment testenv
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    SYSTEM ERROR: Failed to create service object TestDataProject.TestService.
    Class: qqsp_ResourceException
    Last TOOL statement: method TestServiceMgr.
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    USER ERROR: (This error was converted)
    Failed to connect to database: ForteSQLServer , username: justin .
    [Microsoft][ODBC Driver Manager] Data source name not found and no
    default
    driver specified
    Class: qqdb_RemoteAccessException with ReasonCode:
    DB_ER_DBMSCONNECTION
    DBMS SQLSTATE: IM002
    Class: qqsp_ErrorDescriptor
    Detected at: qqdb_OdbcVendorInfo::DoSQLConnect at 10
    Last TOOL statement: method ServiceMgr.SetDBSession
    Error Time: Mon Dec 20 12:05:37
    Exception occurred (remotely) on partition "Forte_Executor",
    (partitionId
    = 40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e, taskId =
    [40114BC0-B0FC-11D3-B4D6-E87D6941AA77:0x11e.22]) in application
    "TestWinProject_cl0", pid 235 on node ALLY in environment TestEnv.
    Versions:
    SQL SERVER 6.5
    ODBC Driver SQL Server 2.65.0240
    ODBC Manager 3.0.28.22
    NT 4 sp4
    Forte 3.0.J.1
    The code I'm using is almost identical to that given in the "Dynamically
    Choosing a Database Vendor" section of the "Making a Database
    Connection" chapter of the "Accessing Databases" manual.
    Any suggestions would be greatly appreciated
    Thanks in advance.
    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]

  • FW: (forte-users) Copy Input parameter

    Peter,
    That is the behaviour that I have experienced also, so I do not have such
    (anchored service object) attributes in my classes anymore but instead add
    that service object attribute as an input parameter to all methods in that
    class that require access via that service object attribute.
    Alternatively, if access to that anchored service object is only required
    in the partition that it was created then overriding the Clone method of
    the class to return a NIL value in the service object attribute should
    work for you.
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 05:33
    To: Forte User Group
    Subject: (forte-users) Copy Input parameter
    Hi folks,
    I have this problem where a "copy input" seems to copy
    the service object too.
    The case is that I have a service object, say
    batchmgrso, for batch processing and an object, say
    batchproc, as the process. The batchproc has an
    attribute for referencing the batchmgrso as it will
    create some other process and submit it to the
    batchmgrso.
    The problem is whenever a batchproc fails and the
    batchmgrso tries to re-submit the object from the
    queue, and I use a copy input as the mechanism for
    passing in the batchproc to the service object, I can
    find that not only does the batchproc get cloned, but
    also the batchmgrso. It caused a lot of problem and
    bombed the method.
    When I changes the mechanism to just input in the
    method signature, everything works fine.
    So is it a forte feature/bug that a copy input would
    clone something so "deeply" that even a SO or archored
    object would get clone too. Is there any way to avoid
    it?
    Regards,
    Peter Sham.
    =====
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

    Peter,
    That is the behaviour that I have experienced also, so I do not have such
    (anchored service object) attributes in my classes anymore but instead add
    that service object attribute as an input parameter to all methods in that
    class that require access via that service object attribute.
    Alternatively, if access to that anchored service object is only required
    in the partition that it was created then overriding the Clone method of
    the class to return a NIL value in the service object attribute should
    work for you.
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 05:33
    To: Forte User Group
    Subject: (forte-users) Copy Input parameter
    Hi folks,
    I have this problem where a "copy input" seems to copy
    the service object too.
    The case is that I have a service object, say
    batchmgrso, for batch processing and an object, say
    batchproc, as the process. The batchproc has an
    attribute for referencing the batchmgrso as it will
    create some other process and submit it to the
    batchmgrso.
    The problem is whenever a batchproc fails and the
    batchmgrso tries to re-submit the object from the
    queue, and I use a copy input as the mechanism for
    passing in the batchproc to the service object, I can
    find that not only does the batchproc get cloned, but
    also the batchmgrso. It caused a lot of problem and
    bombed the method.
    When I changes the mechanism to just input in the
    method signature, everything works fine.
    So is it a forte feature/bug that a copy input would
    clone something so "deeply" that even a SO or archored
    object would get clone too. Is there any way to avoid
    it?
    Regards,
    Peter Sham.
    =====
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [email protected]

  • Re: (forte-users) SCM Hooks

    I am still having trouble using the SCM hook. I have set everything up but
    when I integrate I get the following error message.
    Forte_cl0: SYSTEM ERROR: Cannot resolve the distributed reference for an
    object
    of class
    (qqrp_SCMServerProxy) named
    (site/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so) for the
    reasons below.
    Class: qqsp_DistAccessException
    Error #: [601, 144]
    Detected at: qqdo_ProxyMgr::ResolveOutGoingProxy at 10
    Last TOOL statement: method
    abSurrogateRepositoryClient.IntegrateWorkspace
    Error Time: Tue Dec 19 15:55:16
    Distributed method called: qqrp_SCMServerProxy.BeforeIntegration (object
    name site/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so)
    from
    partition "Forte_cl0_Client",
    SYSTEM ERROR: No objects with the name
    (site/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so) were
    found or are reachable.
    Class: qqsp_DistAccessException
    Error #: [601, 91]
    Detected at: qqdo_OlsNameInfo::GetNextObjectName at 2
    Error Time: Tue Dec 19 15:55:16
    Exception occurred (locally) on partition "Forte_cl0_Client",
    (partitionId = 419029E0-D5A6-11D4-BE67-78683332AA77:0x148:0x2,
    taskId
    = [419029E0-D5A6-11D4-BE67-78683332AA77:0x148:0x2.14]) in
    application
    "FTLaunch_cl0", pid 143 on node DTMAPGWYND02 in environment
    centrale.
    The value I have given to my FORTE_RP_SCMSERVER environment variable is
    SCMTestService2/SCMTestService2/SCMTestService2SO. Is this correct?
    According to the Environment Console, the application is
    SCMTestService2_cl0, I have a partiotion - SCMTestService2_cl0_Part1 and an
    installed partition SCMTestService2_cl0_Part1_DTMAPGWYND02 and the name of
    the SO in the SCMTestService2 class which was used to create everything is
    SCMTestService2SO.
    Should the applicaiton be online all the time or just online when it is
    necessary to use it because it is not online after everything else has
    started.

    Hi Alexandra
    I have been going through the mails regarding SCM and SCM hooks. I donot
    have any knowledge on hooks, Could you pls explain me about hooks or pls let
    me know where can i find the documentation on hooks.
    Thanks in advance
    Vasundhara
    ----- Original Message -----
    From: Alexandra Macedo <ammeasysoft.pt>
    To: Maredudd ap Gwyndaf <maredudd.apgwyndafs1.com>
    Cc: forte-users <forte-userslists.xpedior.com>
    Sent: Tuesday, December 19, 2000 10:48 PM
    Subject: Re: (forte-users) SCM Hooks
    >
    >
    You should launch the SCM hook service before launching the RepositoryServer
    you could use a script like:
    SCM.bat
    rem env vars used inside the SCM hook code
    set FORTE_SCM_DIR=%FORTE_ROOT%\scm
    set FORTE_SCM_BEFORE_EXPORT=beforeExport.bat
    set FORTE_SCM_AFTER_EXPORT=afterExport.bat
    rem where the SCM hook is deployed
    set SCM_PROG=bt:c:\forte\userapp\scmtestservice2\Cl0\scmtestservice2_cl1
    %FORTE_ROOT%\install\bin\ftexec -fi %SCM_PROG% -ftsvr 0
    Remember, you cannot configure as Server your SCM hooks if they are on arepository
    where
    the SCM hooks are already running, this means you must have a Repositorywithout the
    SCM hooks
    when you deploy the SCM hook service.
    Hope this helps
    Alexandra Macedo
    Date: Tue, 19 Dec 2000 16:03:36 -0000
    From: "Maredudd ap Gwyndaf" <maredudd.apgwyndafs1.com>
    To: "Forte Mailing List" <forte-userslists.xpedior.com>
    Subject: Re: (forte-users) SCM Hooks
    Message-ID: <011f01c069d5$3e88b0f0$405810acman.s1.com>
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: 7bit
    I am still having trouble using the SCM hook. I have set everything up
    but
    when I integrate I get the following error message.
    Forte_cl0: SYSTEM ERROR: Cannot resolve the distributed reference for an
    object
    of class
    (qqrp_SCMServerProxy) named
    (site/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so) forthe
    reasons below.
    Class: qqsp_DistAccessException
    Error #: [601, 144]
    Detected at: qqdo_ProxyMgr::ResolveOutGoingProxy at 10
    Last TOOL statement: method
    abSurrogateRepositoryClient.IntegrateWorkspace
    Error Time: Tue Dec 19 15:55:16
    Distributed method called: qqrp_SCMServerProxy.BeforeIntegration(object
    namesite/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so)
    from
    partition "Forte_cl0_Client",
    . . . SYSTEM ERROR: No objects with the name
    (site/scmtestservice2_cl0/scmtestservice2_cl0-scmtestservice2so)were
    found or are reachable.
    Class: qqsp_DistAccessException
    Error #: [601, 91]
    Detected at: qqdo_OlsNameInfo::GetNextObjectName at 2
    Error Time: Tue Dec 19 15:55:16
    Exception occurred (locally) on partition "Forte_cl0_Client",
    (partitionId = 419029E0-D5A6-11D4-BE67-78683332AA77:0x148:0x2,
    taskId
    = [419029E0-D5A6-11D4-BE67-78683332AA77:0x148:0x2.14]) in
    application
    "FTLaunch_cl0", pid 143 on node DTMAPGWYND02 in environment
    centrale.
    The value I have given to my FORTE_RP_SCMSERVER environment variable is
    SCMTestService2/SCMTestService2/SCMTestService2SO. Is this correct?
    According to the Environment Console, the application is
    SCMTestService2_cl0, I have a partiotion - SCMTestService2_cl0_Part1 andan
    installed partition SCMTestService2_cl0_Part1_DTMAPGWYND02 and the nameof
    the SO in the SCMTestService2 class which was used to create everythingis
    SCMTestService2SO.
    Should the applicaiton be online all the time or just online when it is
    necessary to use it because it is not online after everything else has
    started.--
    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) 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) Accelerator keys under MS Windows95/98/NT

    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_01BEF001.9C8C0B50
    Content-Type: text/plain
    Unfortunately, ALT key is not recognized as a validkey modifier on Windows
    That isn't entirely true. The ALT key is recognized. I've used it
    successfully
    under Windows 95 and NT. The only annoying side-effect is that you get the
    standard operating system beep when you perform the keypress.
    -----Original Message-----
    From: "Ajith Kallambella" [SMTP:[email protected]]
    Sent: Thursday, August 26, 1999 1:43 PM
    To: "[email protected]" [SMTP:[email protected]];
    "[email protected]" [SMTP:[email protected]]
    Subject: Re: (forte-users) Accelerator keys under MS Windows 95/98/NT
    The Window class has a method named SetAsFunctionKey
    and an event named FunctionKeyPress. When used
    in combination, the former can be used to configure
    various accelerator keys for the window widgets
    and the latter can be used to trap them.
    For more details, take a look at Forte online help.
    Unfortunately, ALT key is not recognized as a valid
    key modifier on Windows, but is only available on
    Unix and VMS - for reasons beyond my comprehension :(
    Hope this helps
    Ajith Kallambella M.
    Forte Systems Consultant.
    From: "Burns, Troy" <[email protected]>
    To: "'[email protected]'" <[email protected]>
    Subject: (forte-users) Accelerator keys under MS Windows 95/98/NT
    Date: Thu, 26 Aug 1999 13:56:07 -0400
    Let's say I have a pushbutton on a window and I've given it
    label text of "&Search". In past developer-lives, the ampersand
    is what gives the button the ability to respond to ALT-S. This
    doesn't appear to be the case in Forte. What do I need to do
    to make this work?
    Thanks in advance,
    Troy Burns
    E-mail: [email protected]
    Marriott Vacation Club International
    941-688-7700 ext. 4408
    For the archives, go to: http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: [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]
    ------_=_NextPart_001_01BEF001.9C8C0B50
    Content-Type: text/html
    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=3Dus-ascii">
    <DEFANGED-META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
    5.5.2448.0">
    <DEFANGED-TITLE>RE: (forte-users) Accelerator keys under MS Windows =
    95/98/NT</TITLE>
    </HEAD>
    <BODY>
    <P><FONT SIZE=3D2>&gt; Unfortunately, ALT key is not recognized as a =
    valid</FONT>
    <BR><FONT SIZE=3D2>key modifier on Windows</FONT>
    </P>
    <P><FONT SIZE=3D2>That isn't entirely true. The ALT key is recognized. =
    I've used it successfully</FONT>
    <BR><FONT SIZE=3D2>under Windows 95 and NT. The only annoying =
    side-effect is that you get the</FONT>
    <BR><FONT SIZE=3D2>standard operating system beep when you perform the =
    keypress.</FONT>
    </P>
    <P><FONT SIZE=3D2>-----Original Message-----</FONT>
    <BR><FONT SIZE=3D2>From: &quot;Ajith Kallambella&quot; =
    [SMTP:[email protected]] </FONT>
    <BR><FONT SIZE=3D2>Sent: Thursday, August 26, 1999 1:43 PM</FONT>
    <BR><FONT SIZE=3D2>To: &quot;[email protected]&quot; =
    [SMTP:[email protected]];</FONT>
    <BR><FONT SIZE=3D2>&quot;[email protected]&quot; =
    [SMTP:[email protected]]</FONT>
    <BR><FONT SIZE=3D2>Subject: Re: (forte-users) Accelerator keys under MS =
    Windows 95/98/NT</FONT>
    </P>
    <BR>
    <P><FONT SIZE=3D2>The Window class has a method named =
    SetAsFunctionKey</FONT>
    <BR><FONT SIZE=3D2>and an event named FunctionKeyPress. When =
    used</FONT>
    <BR><FONT SIZE=3D2>in combination, the former can be used to =
    configure</FONT>
    <BR><FONT SIZE=3D2>various accelerator keys for the window =
    widgets</FONT>
    <BR><FONT SIZE=3D2>and the latter can be used to trap them.</FONT>
    </P>
    <P><FONT SIZE=3D2>For more details, take a look at Forte online =
    help.</FONT>
    </P>
    <P><FONT SIZE=3D2>Unfortunately, ALT key is not recognized as a =
    valid</FONT>
    <BR><FONT SIZE=3D2>key modifier on Windows, but is only available =
    on</FONT>
    <BR><FONT SIZE=3D2>Unix and VMS - for reasons beyond my comprehension =
    :(</FONT>
    </P>
    <P><FONT SIZE=3D2>Hope this helps</FONT>
    </P>
    <P><FONT SIZE=3D2>Ajith Kallambella M.</FONT>
    <BR><FONT SIZE=3D2>Forte Systems Consultant.</FONT>
    </P>
    <BR>
    <P><FONT SIZE=3D2>&gt;From: &quot;Burns, Troy&quot; =
    &lt;[email protected]&gt;</FONT>
    <BR><FONT SIZE=3D2>&gt;To: &quot;'[email protected]'&quot; =
    &lt;[email protected]&gt;</FONT>
    <BR><FONT SIZE=3D2>&gt;Subject: (forte-users) Accelerator keys under MS =
    Windows 95/98/NT</FONT>
    <BR><FONT SIZE=3D2>&gt;Date: Thu, 26 Aug 1999 13:56:07 -0400</FONT>
    <BR><FONT SIZE=3D2>&gt;</FONT>
    <BR><FONT SIZE=3D2>&gt;Let's say I have a pushbutton on a window and =
    I've given it</FONT>
    <BR><FONT SIZE=3D2>&gt;label text of &quot;&amp;Search&quot;.  In =
    past developer-lives, the ampersand</FONT>
    <BR><FONT SIZE=3D2>&gt;is what gives the button the ability to respond =
    to ALT-S.  This</FONT>
    <BR><FONT SIZE=3D2>&gt;doesn't appear to be the case in Forte.  =
    What do I need to do</FONT>
    <BR><FONT SIZE=3D2>&gt;to make this work?</FONT>
    <BR><FONT SIZE=3D2>&gt;</FONT>
    <BR><FONT SIZE=3D2>&gt;Thanks in advance,</FONT>
    <BR><FONT SIZE=3D2>&gt;</FONT>
    <BR><FONT =
    SIZE=3D2>&gt;---------------------------------------------</FONT>
    <BR><FONT SIZE=3D2>&gt;Troy Burns</FONT>
    <BR><FONT SIZE=3D2>&gt;E-mail: [email protected]</FONT>
    <BR><FONT SIZE=3D2>&gt;Marriott Vacation Club International</FONT>
    <BR><FONT SIZE=3D2>&gt;941-688-7700 ext. 4408</FONT>
    <BR><FONT SIZE=3D2>&gt;</FONT>
    <BR><FONT SIZE=3D2>&gt;--</FONT>
    <BR><FONT SIZE=3D2>&gt;For the archives, go to: <A =
    HREF=3D"<a href=
    "http://lists.sageit.com/forte-users">http://lists.sageit.com/forte-users</a>" =
    TARGET=3D"_blank">http://lists.sageit.com/forte-users</A> and =
    use</FONT>
    <BR><FONT SIZE=3D2>&gt;the login: forte and the password: archive. To =
    unsubscribe, send in a new</FONT>
    <BR><FONT SIZE=3D2>&gt;email the word: 'Unsubscribe' to: =
    [email protected]</FONT>
    <BR><FONT SIZE=3D2>&gt;</FONT>
    </P>
    <BR>
    <P><FONT =
    SIZE=3D2>_______________________________________________________________=
    </FONT>
    <BR><FONT SIZE=3D2>Get Free Email and Do More On The Web. Visit <A =
    HREF=3D"<a href="http://www.msn.com">http://www.msn.com</a>" =
    TARGET=3D"_blank">http://www.msn.com</A></FONT>
    </P>
    <P><FONT SIZE=3D2>--</FONT>
    <BR><FONT SIZE=3D2>For the archives, go to: <A =
    HREF=3D"<a href=
    "http://lists.sageit.com/forte-users">http://lists.sageit.com/forte-users</a>" =
    TARGET=3D"_blank">http://lists.sageit.com/forte-users</A> and =
    use</FONT>
    <BR><FONT SIZE=3D2>the login: forte and the password: archive. To =
    unsubscribe, send in a new</FONT>
    <BR><FONT SIZE=3D2>email the word: 'Unsubscribe' to: =
    [email protected]</FONT>
    </P>
    </BODY>
    </HTML>
    ------_=_NextPart_001_01BEF001.9C8C0B50--

    Hi,Beau Leo, I am having problem installing Oracle9i Database Rel.2 on my pc.
    I read the suggestion and solution you posted for fixing Oracle 8.1.x installation
    probblem, and since my pc also hung at 48% while installing Oracle 9i software,
    I wonder if the same problem in the Oracle8 Vs.Pentium4 also exists for Oracle9i.
    I have Windows2000,256RAM, Pentium3 1Ghz, and 13.8 free diskspace. But the installation always
    hangs at 48%, my computer will just shut down and restart automatically without
    even showing an error message. I have tried installing the Enterprise edition for 3
    times already but everytime encountered the same problem. I've also tried custom installation
    by selecting not to create database, but it also hung.
    Before I started each installation, I always made sure that my registry and environment
    path are cleared and that all the partially-installed Oracle files are deleted.
    I hope that you or anyone who has a solution for this problem could be so kindly to help me out.
    Thank you in advance.
    ailee

  • RE: (forte-users) Copy Input parameter

    Peter,
    Just a quick response before I prepare a code sample for you.
    Unfortunately, we pay for our sins as a true cloning operation has to take
    into account the (potentially) recursive nature of an object graph and
    effectively has to do the equivalent of serialising an object graph (as in
    parameter passing to remote methods) without going into an infinite loop
    when the object graph recurses back into itself.
    The Forte runtime does this quite nicely but if you wish to change its
    default behaviour, it's a bit of hard work but it's achievable.
    So you need to decide. Is it worth it?
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 07:20
    To: EMMI, Mario
    Cc: '[email protected]'
    Subject: RE: (forte-users) Copy Input parameter
    Hi,
    Interesting solution!
    Just to clarify further. How exactly would you
    over-write the clone method. New the object and then
    clone all the attributes of the existing object to the
    new object, excluding whatever attribute you think is
    appropriate?
    Regards,
    Peter Sham.
    --- "EMMI, Mario" <[email protected]> wrote:
    Peter,
    That is the behaviour that I have experienced also,
    so I do not have such
    (anchored service object) attributes in my classes
    anymore but instead add
    that service object attribute as an input parameter
    to all methods in that
    class that require access via that service object
    attribute.
    Alternatively, if access to that anchored service
    object is only required in
    the partition that it was created then overriding
    the Clone method of the
    class to return a NIL value in the service object
    attribute should work for
    you.
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 05:33
    To: Forte User Group
    Subject: (forte-users) Copy Input parameter
    Hi folks,
    I have this problem where a "copy input" seems tocopy
    the service object too.
    The case is that I have a service object, say
    batchmgrso, for batch processing and an object,say
    batchproc, as the process. The batchproc has an
    attribute for referencing the batchmgrso as itwill
    create some other process and submit it to the
    batchmgrso.
    The problem is whenever a batchproc fails and the
    batchmgrso tries to re-submit the object from the
    queue, and I use a copy input as the mechanism for
    passing in the batchproc to the service object, Ican
    find that not only does the batchproc get cloned,but
    also the batchmgrso. It caused a lot of problemand
    bombed the method.
    When I changes the mechanism to just input in the
    method signature, everything works fine.
    So is it a forte feature/bug that a copy inputwould
    clone something so "deeply" that even a SO orarchored
    object would get clone too. Is there any way toavoid
    it?
    Regards,
    Peter Sham.
    =====
    For the archives, go to:
    http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, send in a new
    email the word: 'Unsubscribe' to:
    [email protected]
    =====
    Do You Yahoo!?
    Bid and sell for free at http://auctions.yahoo.com

    Mario,
    Well. There're 2 ways that I can do it. Avoid copy
    input as much as possible ( in fact, I hate copy input
    ) or code my own clone method.
    Coding my own clone method should be a better
    solution. So if you have time, please please descibe
    it.
    Thanks for all the troubles. Regards,
    Peter Sham.
    --- "EMMI, Mario" <[email protected]> wrote:
    Peter,
    Just a quick response before I prepare a code sample
    for you.
    Unfortunately, we pay for our sins as a true cloning
    operation has to take
    into account the (potentially) recursive nature of
    an object graph and
    effectively has to do the equivalent of serialising
    an object graph (as in
    parameter passing to remote methods) without going
    into an infinite loop
    when the object graph recurses back into itself.
    The Forte runtime does this quite nicely but if you
    wish to change its
    default behaviour, it's a bit of hard work but it's
    achievable.
    So you need to decide. Is it worth it?
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 07:20
    To: EMMI, Mario
    Cc: '[email protected]'
    Subject: RE: (forte-users) Copy Input parameter
    Hi,
    Interesting solution!
    Just to clarify further. How exactly would you
    over-write the clone method. New the object andthen
    clone all the attributes of the existing object tothe
    new object, excluding whatever attribute you thinkis
    appropriate?
    Regards,
    Peter Sham.
    --- "EMMI, Mario" <[email protected]> wrote:
    Peter,
    That is the behaviour that I have experienced
    also,
    so I do not have such
    (anchored service object) attributes in myclasses
    anymore but instead add
    that service object attribute as an inputparameter
    to all methods in that
    class that require access via that serviceobject
    attribute.
    Alternatively, if access to that anchoredservice
    object is only required in
    the partition that it was created thenoverriding
    the Clone method of the
    class to return a NIL value in the serviceobject
    attribute should work for
    you.
    Mario Emmi
    British Aerospace Australia
    -----Original Message-----
    From: Peter Sham [SMTP:[email protected]]
    Sent: Thursday, 28 October 1999 05:33
    To: Forte User Group
    Subject: (forte-users) Copy Input parameter
    Hi folks,
    I have this problem where a "copy input" seems
    to
    copy
    the service object too.
    The case is that I have a service object, say
    batchmgrso, for batch processing and an
    object,
    say
    batchproc, as the process. The batchproc has
    an
    attribute for referencing the batchmgrso as itwill
    create some other process and submit it to the
    batchmgrso.
    The problem is whenever a batchproc fails and
    the
    batchmgrso tries to re-submit the object fromthe
    queue, and I use a copy input as the mechanismfor
    passing in the batchproc to the serviceobject, I
    can
    find that not only does the batchproc get
    cloned,
    but
    also the batchmgrso. It caused a lot of
    problem
    and
    bombed the method.
    When I changes the mechanism to just input in
    the
    method signature, everything works fine.
    So is it a forte feature/bug that a copy inputwould
    clone something so "deeply" that even a SO orarchored
    object would get clone too. Is there any way
    to
    avoid
    it?
    Regards,
    Peter Sham.
    =====
    For the archives, go to:
    http://lists.sageit.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, send in a new
    email the word: 'Unsubscribe' to:
    [email protected]
    =====
    =====

Maybe you are looking for

  • Idoc - Partner Function not getting captured.

    Dear all, I am using IDOC (type - /NFM/ORDERS05) to send a Purchase Order. The Idoc is getting created but the only a few partner function is getting captured from the Partners tab in the ME22n transaction. The remaining partner functions that are no

  • How to do a sapevent with Redwood

    Hi, i'm trying to simulate this command : "sapevt ZSTART699 -p START name=PBW nr=00" with Redwood. How can i do that ? i've try SAP_RaiseEvent but no result. thank you Cipriano

  • Redundant Transparant ASA between Redundant Routed Links

    Aparently the Security/Compliance team didn't review my network design before it was submitted and built, and now I have to shoe horn a firewall somewhere there was never supposed to be one. I have my two current DC Cores (Nexus 5548UP), that current

  • Help with Dynamic Code not displaying only ASP Shields???

    Started working with some .asp pages today and it is not showing me the record set in the brackets. Like this {Recordset.Field} Only giving me the little ASP shield. Looks like this. I have search on google and in dreamweave in the pref's thinking so

  • Help with making part of a picture transparent

    I am very new to Indesign, and I am trying to teach myself how to use it. I was using Microsoft Publisher for my last project, in which I was able to use a transparency tool to click on part of a .gif image to make it transparent, whilst leaving the