Making Forte service objects available to VisiBrokerclients

Hello!
In the Forte manual, Interfacing with External Systems, there's a section on
making Forte service objects available to ObjectBroker(DEC). We are using
VisiBroker as our ORB. Does anyone know if the instructions for
ObjectBroker can be used? Does anyone have experience making Forte service
objects visible to VisiBroker clients specifically?
Thanks in Advance!
Mark Savory
GTE Gov. Systems
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

Hi,
If you are going to make Forte service objects accessible to the VisiBroker
CORBA/IIOP clients (C++, or Java clients), read Forte manual called "A Guide to
WebEnterprise Release 1.0.B (any new release???) of Forte WebEnterprise". You
may find that all materials beginning from Chapter 14 are useful and helpful.
I've posted many comments and issues unsolved to Forte forum in this area.
ObjectBroker is one of ORB products made by BEA, and is the first ORB product on
the market. It runs on dozens of platforms. In 1997, BEA acquired ObjectBroker
from Digital (DEC). All ORB products (most established products such as
VisiBroker for C++ 3.x and VisiBroker for Java 3.x from
Inprise(Borland/Visigenic), Orbix 3.x for C++ and OrbixWeb for Java 3.x from
Iona, ObjectBroker and Tuxedo from BEA, JavaIDL from JavaSoft) are made based on
OMG's CORBA/IIOP specifications. Theoretically, all ORBs products should be
interoperable.
Hope this help!
Shilong Yin
US West in Denver
=========================
Savory, Mark wrote:
Hello!
In the Forte manual, Interfacing with External Systems, there's a section on
making Forte service objects available to ObjectBroker(DEC). We are using
VisiBroker as our ORB. Does anyone know if the instructions for
ObjectBroker can be used? Does anyone have experience making Forte service
objects visible to VisiBroker clients specifically?
Thanks in Advance!
Mark Savory
GTE Gov. Systems
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

Similar Messages

  • Service Objects

    We are currently in the process of rearchitecting our software systems
    around Forte.
    Could anyone tell me what experiences they have had with building a
    system using Forte Service objects in a multi-tiered system?
    It seems to us that these are intended to be used as high-value
    facade-like interfaces which serve as an entry point to the underlying
    business object model. Is this correct?
    Can we pass a remote object reference back to a client for its
    subsequent use? If not, does this mean that we have to build a local,
    client-based object model to hold the data returned from the service
    object methods?
    Any other assistance you can give will be very much appreciated.
    Thanks
    Andrew Lowther

    hi
    Basis Team will maintain some parameter value in the below transactions for the Serivce for Object storage capacity
    RZ10 Maintain system profiles X

  • Re: Service Objects

    Hi Andrew...
    Service Objects, are, in essence, the central concept of any Forte
    application, so I think that every participant in this forum can
    probably offer some type of insight on using Forte Service Objects in
    their application :).
    Any type of shared application functionality is a candidate for
    inclusion in a service object. The definition given on page 156 of the
    Forte Programming Guide states that "[a] service object is a named
    object that represents an existing external resource, a Forte shared
    business service that is shared by multiple users, or a service that is
    replicated to provide failover or load-balancing. The service object
    contains information needed by the service as well as operations that
    the service can perform."
    Service objects are, imho, the most important concept for building a
    successful Forte application, and by far the least well understood. I
    suggest spending a good amount of time familiarizing yourself with the
    Service Object concept, and then understanding the Service Object
    properties (dialog duration, visibility, replication, search paths,
    etc.) so that you can build a scalable, robust, and fault-tolerant
    system to meet your user requirements. Forte is an incredibly powerful
    tool when you understand all of the possibilities you have, especially
    those related to Service Objects.
    In order to get a better understanding of Forte Service objects and how
    they relate to the design and development of your particular system, I
    highly suggest participating in the Forte Object-Oriented Analysis and
    Design (OOAD) course. You can get more information on the course and
    register on-line by visiting the Forte Education website:
    http://www.forte.com/Educate/index.htm. Additionally, you can take a
    look at the Forte manuals, especially Chapter 8 of the Forte Programming
    Guide and throughout the Guide to the Forte Workshops manual.
    To answer one of your other questions... You can pass references to
    objects from a service object back to a client in Forte (you can also,
    for that matter, pass copies of objects - it depends upon your needs).
    Again, to get a better understanding of these concepts, I suggest taking
    the Forte OOAD class.
    I hope this helps! Please let me know if you have any further questions
    - I'd be happy to help.
    -Katie
    Andrew Lowther wrote:
    >
    We are currently in the process of rearchitecting our software systems
    around Forte.
    Could anyone tell me what experiences they have had with building a
    system using Forte Service objects in a multi-tiered system?
    It seems to us that these are intended to be used as high-value
    facade-like interfaces which serve as an entry point to the underlying
    business object model. Is this correct?
    Can we pass a remote object reference back to a client for its
    subsequent use? If not, does this mean that we have to build a local,
    client-based object model to hold the data returned from the service
    object methods?
    Any other assistance you can give will be very much appreciated.
    Thanks
    Andrew Lowther--
    Katie Carty
    Senior Consultant
    Forte Software, Inc.
    http://www.forte.com
    4801 Woodway Drive, Suite 300E
    Houston, Texas 77056
    vmail: (510) 986-3802
    email: [email protected]
    **************************************************

    Andrew,
    We at Per-Se Technologies have developed an approach to alleviate many
    "pains" with using service objects. Some things you will soon discover is
    that although service objects provide fail-over, load balancing, etc., they
    also,
    1. Eat up valuable developer time because it takes time to repartition and
    start partitions in development mode. In development mode (i.e., running
    from the workshops), each developer gets their own copy of all partitions!
    2. Limit the use of compiled libraries due to service object references in
    TOOL code.
    3. Consume valuable server resources because each developer has their own
    copy of the partitions.
    We have several alternatives to address all of the above problems. I am
    currently working on converting a large application so that:
    1. All developers share a single set of service objects/partitions. Each
    developer doesn't have to wait while their copies of the partitions come
    up. Therefore, development time is more fully utilized and server
    resources are dramatically freed up.
    2. Service objects are completely decoupled from an application.
    Therefore, we can compile as much as possible.
    You asked some other questions as well: You should always isolate SO
    references as much as possible. We do this by using a facade. You can
    pass a remote obj. reference to a client for future use.
    Take care!
    Dustin Breese
    Supervising Technical Specialist
    Per-Se Technologies
    From: Andrew Lowther <[email protected]>
    Date: Tue, 24 Feb 1998 16:24:31 -0000
    Subject: Service Objects
    We are currently in the process of rearchitecting our software systems
    around Forte.
    Could anyone tell me what experiences they have had with building a
    system using Forte Service objects in a multi-tiered system?
    It seems to us that these are intended to be used as high-value
    facade-like interfaces which serve as an entry point to the underlying
    business object model. Is this correct?
    Can we pass a remote object reference back to a client for its
    subsequent use? If not, does this mean that we have to build a local,
    client-based object model to hold the data returned from the service
    object methods?
    Any other assistance you can give will be very much appreciated.
    Thanks
    Andrew Lowther

  • Service objects inside libraries (WAS: Interfaces in Forte -has anyon

    The following message is actually not about interfaces, but libraries:
    > From: Jeanne Hesler <[email protected]>
    > To: [email protected] <[email protected]>
    > Date: Thursday, July 30, 1998 11:12 AM
    > Subject: RE: Interfaces in Forte - has anyone used them?
    >>
    > Just to clarify a few things:
    >>
    1) Just to be 100% correct -- it is actually Libraries that areloaded and
    not Interfaces. The distinction is important because a librarycould
    potentially implement many interfaces (or provide manyimplementations for a
    single interface).
    2) The code in a Library may reference a service object, but itmay not
    define a service object. Of course any SO's referenced by thelibrary
    must already be known to the loading partition. It is OK to havecode like
    this in a library:
    MySO.doSomething();
    The documentation is a little vague on this point, but I haveconfirmed that
    this is true through Tech Support and by experimentation.
    Actually you CAN define and use service objects inside libraries
    (compiled or interpreted) with two restrictions:
    1) You can not define two service objects inside library in different
    projects and call one of them from another. If you need that, both
    service objects must be in the same project.
    2) If service object is defined and used only by library (if it never
    referenced directly by application code), than in order to be able to
    partition application, you will need to create dummy method inside
    application, which will reference this service object (you do not need
    to execute this method - just have in the code).
    WBR,
    Nickolay Sakharov.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    The way stateful Web services are currently handled is through the use of cookies ... once your stub invokes a stateful Web service a cookie is created which routes subseqent requests back to the Web service.
    In your scenario, the problem is given one client has creates Web service 1 and now Web service 2 would like to be able to use that state it really isn't possible unless you engineer a solution yourself ... you would need so somehow set the cookie on your Web service 2 client to that of the original client to Web service 1. State tends to be based around an individual client versus multiple clients for that state.
    There are numerous ways around this but you would be engineering around the issue ... the easiest is to write the state out somewhere so that it can be shared.
    This section of the doc gives a brief overview:
    http://download-west.oracle.com/docs/cd/A97688_06/generic.903/b10004/javaservices.htm
    Lastly be aware there is a bug with timeouts in stateful Web services in Oracle9iAS 9.0.3 that has been fixed in 9.0.4. I can't find the thread here that documents it but when I track it down I will post the link so you can see the workaround.
    Mike.

  • RE: (forte-users) User-visible service object

    This solution will cause network traffic for all method calls on the
    environment visible SO. This overhead is not incurred when calling methods
    on a user visible SO in the same partition. Depending on the frequency of
    calls and the volume of data being passed in and out, this could be
    significant overhead.
    We have successfully implemented the following.
    Create a second User Visible SO based on the same class. Then you will be
    able to partition the one SO into the client partition and the second into
    the server partition.
    For example, assume the underlying class is named MessageService then define
    your SO's as
    ClientMessageService -> MessageService
    ServerMessageService -> MessageService
    Andy
    -----Original Message-----
    From: Amin, Kamran [mailto:kamran.aminlendware.com]
    Sent: Wednesday, August 23, 2000 10:17 PM
    To: 'Duncan Kinnear'; kamranaminyahoo.com
    Subject: RE: (forte-users) User-visible service
    object
    Duncan,
    Make the user visible service object to an
    environment visible
    service object. This way the client and any service object
    on the server
    can access it.
    ka
    -----Original Message-----
    From: Duncan Kinnear [mailto:duncanmccarthy.co.nz]
    Sent: Wednesday, August 23, 2000 7:47 PM
    To: kamranaminyahoo.com
    Subject: (forte-users) User-visible service object
    Hi folks!
    We've got a user-visible service object that handles
    initialisation of and
    access to the message catalog.
    This works well on the client, but we would like to use the
    same
    mechanism (and even the same service object) on the server
    so that
    service objects on the server have access to their message
    catalog on
    the
    server.
    I was hoping that if we referenced this user-visible service
    object in
    both the client and the server code, that it would partition
    a copy in
    each of the client and server partitions. However, we
    cannot get this
    user-visible service object duplicated on the server. If we
    drag and drop
    it onto the server partition in the partition workshop, it
    disappears from
    the client partition!
    Anybody got any idea how we could do this?
    Cheers,
    Duncan Kinnear,
    McCarthy and Associates, Email:
    duncanMcCarthy.co.nz
    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.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

    I would try going to the "lowest common denominator" between WindowsNT and
    Windows95 - DOS. Both windowing OS's sort of have their roots in DOS, or at
    least both are capable of opening a DOS session.
    Therefore, from a DOS prompt type "set" to view the environment variables for
    both OS types. Look for a common variable between the two that stores the
    userID. If you can find one of these your application will be that much more
    portable between these two Windows mutations.
    I used "set" on my NT and found my userID assigned to a few variables. I haven't
    done this on a Windows95 machine in quite some time, but if the machine is on
    the network it should have at least one environment variable with the userID.
    I'm just guessing that DOS has a variable to store the userID that will be
    common to both machines.
    Good luck....
    Kelsey PetrychynSaskTel Technical Analyst
    ITM - Technology Solutions - Distributed Computing
    Tel (306) 777 - 4906, Fax (306) 359 - 0857
    Internet:kelsey.petrychynSasktel.sk.ca
    Quality is not job 1. It is the only job!
    "Olivier Andrieux" <oandrieuxaxialog.fr> on 07/19/2000 09:12:41 AM
    To: forte-userslists.xpedior.com
    cc: (bcc: Kelsey Petrychyn/SaskTel/CA)
    Subject: (forte-users) user name
    Hi
    I use this command to catch the username:
    task.part.operatingsystem.getenv('username')
    with NT, there is no problem
    but with windows95 or 98 the command doesn't find the username.
    Thanks in advance.
    Olivier Andrieux
    Axialog
    Lille
    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) loadbalancing a service object

    Hi,
    If you need to share the values between your So, you can find a sample on
    http://perso.club-internet.fr/dnguyen
    It was designed to show how to manage shared states between replicates using
    fail over. It could also be used for load-bancing. A better way should be to
    manage the names of service objects within Forte (with the application,
    project name and compatibility level), but through the NameServer.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    http://perso.club-internet.fr/dnguyen/
    Xiao, Menghua a &eacute;crit:
    Hello,
    I tried to loadbalance a service object that has both methods and
    attributes. The first copy of the service object works fine. However, all
    the attributes of the second copy of the service object are nil when a
    client try to use this copy. How can I make those two copies exactly the
    same?
    I am new to Forte. Any input will be greatly appreciated.
    Menghua Xiao
    Regional Transportation District,
    Denver, Colorado, USA
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

    Hi,
    If you need to share the values between your So, you can find a sample on
    http://perso.club-internet.fr/dnguyen
    It was designed to show how to manage shared states between replicates using
    fail over. It could also be used for load-bancing. A better way should be to
    manage the names of service objects within Forte (with the application,
    project name and compatibility level), but through the NameServer.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    http://perso.club-internet.fr/dnguyen/
    Xiao, Menghua a &eacute;crit:
    Hello,
    I tried to loadbalance a service object that has both methods and
    attributes. The first copy of the service object works fine. However, all
    the attributes of the second copy of the service object are nil when a
    client try to use this copy. How can I make those two copies exactly the
    same?
    I am new to Forte. Any input will be greatly appreciated.
    Menghua Xiao
    Regional Transportation District,
    Denver, Colorado, USA
    For the archives, go to: http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. To unsubscribe, send in a new
    email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com

  • Re: (forte-users) Service Object

     

    what about subclassing it and putting the agent stuff in there
    Matthew Middleton Ph: +61 2 9239 4972
    Oryx Software Consultant Fax: +61 2 9239 4900
    Lawpoint Pty. Ltd. E-mail matthewmwriteme.com
    ----- Original Message -----
    From: Ramarao Pabbaraju <RPabbarajulmimsno.com>
    To: <kamranaminyahoo.com>
    Sent: Tuesday, February 29, 2000 9:02 AM
    Subject: (forte-users) Service Object
    Hi,
    We have a class X which we would like to use it for service object andalso
    to instantiate it locally to call some methods. We would like to have
    system agents for the service object, but not for objects instantiated
    locally. In other words, if the object is used for service object, only
    then we want the agents (customized) to be initialized. How do we find out
    whether it is service object in Init method self? Service objectproperties
    (like isAnchored) or attributes (given from ServiceObject
    properties/initial values window) are set only at the end of init method.
    One workaround we could think of is start a task at the end of init method
    and also delay the execution of method. Is there any clean way of doing
    this?
    Thanks in advance,
    Ramarao
    IonIdea
    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

  • Devise object push service not available or busy

    I did connect my ipad with my laptop but could not pair them as the error msg says "devise object push service not available or busy". Thing is, I could pair the same laptop with my android phone! Please any help?

    You cannot pair an iPad to a computer for anything other than Internet tethering.
    Android is not the same as iOS.

  • Events in Service Objects

    Hi,
    Is it possible to have a service object checking permanently for events
    posted by other service objects? I have not been able to start this type of
    object.
    Thanks,
    Guillermo Turk
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    I have something this (please, some patience :-) ):
    //Example: handle event (the event is Beep)
    interface AlarmListener{
    void Beep(String hour); //declare a event handler
    //The class that "raise" an event Beep
    class Clock{
    AlarmListener theAlarmListener; //Referecne to an listener object
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener = theAlarmListener;
    private ringAlarm(){
    theAlarmListener.Beep("10:00 P.M."); //Raise Beep event
    class Guy implements AlarmListener{
    public Guy(){
    Clock clock = new Clock();
    clock.addAlarmListener(this);
    //Handle Beep event
    void Beep(String hour){
    System.out.println("Ohhh, its time of wake up!!!");
    //End
    But, in this model my source object have only an listener object.
    This can be improved by a array, like this:
    class Clock{
    AlarmListener[] theAlarmListener = new AlarmListener[10];
    private int i = 0;
    //Register an listener object
    public addAlarmListener(AlarmListener theAlarmListener){
    this.theAlarmListener[i++] = theAlarmListener;
    //More code...
    making to a side the limitation of size of an array (although this can be managed somehow if it is necessary), the problem begining to be more and more complex... i.e., it is necessary to create a method for unregister a listener...
    And, what about with multi-threads programs??? The addAlarmListener method should be synchronized or something??
    It should have an easier way!
    PD: I think that I have used the Delegate pattern in conjunction with some other pattern.
    PD: Forget my English. It is terrible
    Saludos

  • RE: (forte-users) Object Request Brokers.....

    Hi Rajeev,
    I just happen to have the following two technotes on hand that helped me
    answers the very same questions..
    <<forte.zip>>
    Hope it helps... if you need more help... fell free to give me a shout!
    Ciao
    Kim
    -----Original Message-----
    From: Rajeev Talwar [SMTP:rtalshotmail.com]
    Sent: Monday, February 21, 2000 6:34 PM
    To: kamranaminyahoo.com
    Subject: (forte-users) Object Request Brokers.....
    Hi All,
    We are writing a cold fusion application which needs to use some
    services from a Forte application. We also have a Cold Fusion Visi
    Broker(ORB)to communicate with Forte. I was wondering what all we need
    in order to get a handle to all the service objects used by Forte
    application in our Cold Fusion application.
    Also do we need to change our deployment scheme for the Forte
    application. I
    believe we have to make a special deployment
    for Forte application to be available to ORB's. By default,
    Forte uses Unix internal communication mechanism like sockets
    etc. for service objects to be available across different
    partitions.
    Also do we need to run both applications and ORB on the same box
    or can we put them in some kind of network.
    I hope I made myself quite clear what we are looking for. I will be
    more than happy to put some more details in case someone needs
    further clarification.
    Are there any technotes out there whcih we can refer to.
    I will appreciate any thoughts.
    -Rajeev Talwar
    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

    You can also use the HTTP-DC project.... You don't
    need Web Enterprise for this. From what I can tell,
    this is available in L.x on....
    There is api documentation in M.2 (with scant
    examples.)
    There's a special process to put the project in your
    repository (it isn't installed in the repository in
    the standard install,) the documentation in M.2
    (probably in M.0 too, AFAIK) that tells you how to do
    this (look for HTTP-DC in the online help.)
    I haven't done much with it yet, I've just installed
    it. If anybody out there has examples, that'd be
    great. I'll try to contribute more the moment I get a
    chance to explore it....
    Christopher Fury
    BellSouth Communications Systems
    --- Daniel Nguyen <dnguyenclub-internet.fr> wrote:
    Hi,
    If you have Web Enterprise, you can user
    HttpAccess.SendRequest().
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Amin, Kamran a &eacute;crit:
    Is there any way to make a HTTP request from TOOLto another HTTP Service?
    thanks in advance.
    For the archives, go to:
    http://lists.xpedior.com/forte-users and use
    the login: forte and the password: archive. Tounsubscribe, 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
    Kick off your party with Yahoo! Invites.
    http://invites.yahoo.com/

  • Service Object Init References

    Has anyone come up with a good work around to allow Service Objects to
    reference other service objects in their init methods or during application
    startup. Since we can't specify the order in which Service Objects start,
    is there a way we can execute some code once all Service Objects have come
    online?
    Will this idea work?
    Start a task in the init method that loops for the referenced service object
    to not be nil, then references the needed SO. For example:
    while true do
    if LogMgrSO = Nil then
    task.delay(100);
    else
    exit;
    end if;
    end while;
    Eric Rasmussen
    Project Manager
    Online Resources & Communications Corporation
    (703)394-5128
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Hi,
    Sorry to answer so late ! I left (one year ago may be) some Tool code on
    the Mailing list on that subject.
    May be you have to consider some different cases :
    1&deg;) Is a Service started because it is only instanciated (<> NIL)?
    2&deg;) Forte insures that the first services to be started on a partition
    are DBsession and DBResource Managers.
    3&deg;) A local Service or a distributed service are not exactly treated the
    same way.
    4&deg;) The init() method has a specific way to run : the allocations are
    made at the end.
    1&deg;) When a Service is not NIL it is only that it is instanciated. So
    your initialization sequence is not endded may be or
    the service is not insured to be started properly. It should be
    important if you need to load a cache for instance. I
    would recommand to test that a service is ON (for DBsessions for
    instance) and to add (if possible) a state to determine
    that a service is properly started.
    2&deg;) This is only available if you are inside the same partition on the
    same machine. So if you have to synchronize with
    external ressources from the partition you will need to treat them like
    other services.
    3&deg;) A local Service will be NIL and then instanciated. The classname
    will be the same as in the workshop.
    A distrubuted service (exactly a service which is not on the same
    partition) will have a different classname (Classname+Proxy).
    So the external service proxy may be instanciated but the So May not,
    and you will get a DistributedAccessException.
    4&deg;) The init() method may not be the best location for a synchronization
    if you need to use an array for instance to
    store you dependencies. So I would use a start task on an InitService()
    method to avoid that problem.
    Options :
    - A dependency could be optionnal : after a certain amount of tries you
    can abort synchronization on the service.
    - You can use synchronization on "cold" and "hot" startup of services.
    - You can develop a service agent which cold have instruments to see
    dependencies and states, and commands to stop/start services.
    - The Delay you may play should be different for each service you are
    waiting for.
    - The order of dependencies should have an importance (first put
    mandatory dependancies, and then optional ones).
    - A Service is not only a Service Object, but could also be just a
    reference to an instance through a container for example.
    - Some kind of autoStart : should I start all my services at the
    beginning of my application or could I start some services
    at the first call ? This should be available if you use your own
    application protocole and if your services are inside some
    service managers for instance.
    Remarks :
    Thoses concepts have been tested on a Framework from R2 to R3 of Forte
    with success. With those, you can imagine
    starting the application without knowing if the database is running, the
    application will wait for the database
    to be mounted. An other advantage of the synchronization is that you
    will resolve the naming of the services at
    the begining of the application. Then, you can stop the environment
    manager and the application will still work
    (for the clients which were already started of course). You can also
    imagine transfering your partitions from one
    node to an other at run-time.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Stephen McHenry wrote:
    >
    At 11:04 AM 10/1/98 -0700, John Jamison wrote:
    begin
    while true do
    begin
    ..attempt "remote" SO reference..
    exit; // while true do loop
    exception
    when e:UsageException do // if in same partition and not yet
    initialized,
    // you get a NIL object exception
    task.errormgr.clear;
    when e:DistributedAccessException do (or RemoteAccessException)
    // if in a different partition, get this
    error
    task.errormgr.clear;
    end;
    event loop
    aTimer : Timer = new (tickInterval=5*1000); // 5 seconds -
    adjust to taste
    aTimer.isActive=true;
    when aTimer.Tick do
    aTimer.IsActive=false;
    exit;
    end event;
    end while;
    end;One of the problems I see with all of these "catch the exception and try
    again" schemes is that they fail to take into account that the SO you are
    calling may, in fact, never appear (due to some sort of problem, of course)
    and then you never exit this loop. It's a "liveness" problem with this
    approach. So, be sure to add some alternate way out after 1 minute (or
    whatever your particular threshold is) and raise an exception yourself.
    Always gotta think about what happens if something goes wrong... ;-)
    Stephen
    |===========================================================================
    ===|
    |Stephen McHenry | Design Consulting |Training courses
    offered: |
    |Advanced Software Tech | | -Distributed
    Obj-Oriented |
    |305 Vineyard Town Ctr #251| [email protected] | Analysis &
    Design |
    |Morgan Hill, CA 95037 | (408) 776-2720 x210 | -Intro to Object
    Technology|
    |USA | http://www.softi.com | -Advanced OO Design
    |
    |===========================================================================
    ===|
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Using Failover for DB Manager Service Objects

    Michelin Tire Corporation
    At Michelin, we are trying to implement a failover
    service object using Oracle 7.3 on RS6000 platform (AIX 4.1.4).
    We understand that we need to use HACMP (Clustering) and
    Oracle's parallel server. This way the DB Service objects
    on two different computer nodes can access the same database.
    Has anyone used this configuration? If so, have you had any problems?
    and how well does it work?
    We would appreciate any information on this subject.
    Thanks in advance,
    Thomas Sams

    Tommy Sams wrote:
    >
    Michelin Tire Corporation
    At Michelin, we are trying to implement a failover
    service object using Oracle 7.3 on RS6000 platform (AIX 4.1.4).
    We understand that we need to use HACMP (Clustering) and
    Oracle's parallel server. This way the DB Service objects
    on two different computer nodes can access the same database.
    Has anyone used this configuration? If so, have you had any problems?
    and how well does it work?
    We would appreciate any information on this subject.
    Thanks in advance,
    Thomas SamsAt CSI, we have planned to use HACMP with Forte' failover to provide a
    high availability architecture for one of our customer.
    There are a lot of stuff to consider, some related to hacmp
    configuration, some to forte' mechanisms.
    In particular we should use HACMP for managing RDBMS backup and Forte'
    capabilities to deal with partitions/envs/nodemgrs failover. We have not
    take into account Oracle's parallel server at the moment ( althought it
    could be a good solution ) because we don't really need to access oracle
    from 2 different nodes at the same time, but "just" to have a "realtime"
    dbms backup in case of primary server fault.
    The architecure we choosen is based on tre AIX server ( 1 application
    server, 1 main dbms server, 1 backup server ( oracle failover, envs
    failover).
    We have started testing it using forte 2.0.h, but we realized that a
    more complete functionality will be offered using 3.0 KEEP_ALIVE
    features. So I could give you more feedback in the near future.
    What type of solution have you in mind ?
    Regards
    Fabrizio Barbero
    Barbero Fabrizio
    CSI-PIEMONTE
    Cso Unione Sovietica 216
    10134 Torino ITALY
    tel: +39 11 3168515
    fax: +39 11 3168212
    e-mail: [email protected]

  • 503 Service not available

    Hi.
    Could you help me ....
    I modified a bsp to display a PDF file into a new popup window, and I tested into my quality server using SE80 transaction and with my portal application after and evething was OK but when a released the new BSP into production server the BSP crashed.
    This is the error message that throws:
    503 Service not Available
    Erro 6
    Version 6040
    MOdule http_j2ee_mt.c
    Line  795
    Server EMKIOAIX103_CRP_00
    Details Cannot reach external application server on localhost:50000
    I explain you my program does it:
    1.-  the user chooses the a record into a Inbox
    2.-  IC display its data with BSP IRecReason
    3.- the user chooses a Action link
    4.- IC display a action PRINT PDF
    5.- the user selects a print pdf
    This is my code to EH_ONGO than create the PDF spool
    METHOD EH_ONGO .
      DATA: function_name TYPE rs38l_fnam,
            dummy(254)        TYPE c,
            ls_archive_index  TYPE toa_dara,
            ls_orderadm_h     TYPE crmt_output_orderadm_h_com,
            ls_activity_h     TYPE crmt_output_activity_h_com,
            ls_lead_h         TYPE crmt_output_lead_h_com,
            ls_opport_h       TYPE crmt_output_opport_h_com,
            ls_orgman_h       TYPE crmt_output_orgman_h_com,
            lt_partner_h      TYPE crmt_output_partner_h_comt,
            ls_pricingdata_h  TYPE crmt_output_pricingdata_h_com,
            ls_sales_h        TYPE crmt_output_sales_h_com,
            ls_shipping_h     TYPE crmt_output_shipping_h_com,
            lt_payplan_d_h    TYPE crmt_output_payplan_d_h_comt,
            ls_customer_h     TYPE crmt_output_customer_h_com,
            ls_cumulat_h     TYPE crmt_output_cumulat_h_com,
            lt_billing_h     TYPE   crmt_output_billing_h_comt,
            lt_cancel_h      TYPE   crmt_output_cancel_h_comt,
            lt_appointment_h TYPE   crmt_output_appointment_h_comt,
            lt_billplan_d_h  TYPE   crmt_output_billplan_d_h_comt,
            lt_billplan_h    TYPE   crmt_output_billplan_h_comt,
            lt_status_d_h    TYPE   crmt_output_status_d_h_comt,
            lt_status_h      TYPE   crmt_output_status_h_comt,
            lt_srv_subject_h TYPE   crmt_output_srv_subject_h_comt,
            lt_srv_reason_h  TYPE   crmt_output_srv_reason_h_comt,
            lt_srv_result_h  TYPE   crmt_output_srv_result_h_comt,
            ls_acs_h         TYPE   crmt_acs_h_com,
            lt_orderadm_i    TYPE   crmt_output_orderadm_i_comt,
            lt_orgman_i      TYPE   crmt_output_orgman_i_comt,
            lt_pricingdata_i TYPE   crmt_output_pricingdata_i_comt,
            lt_pricing_i     TYPE   crmt_output_pricing_i_comt,
            lt_product_i     TYPE   crmt_output_product_i_comt,
            lt_sales_i       TYPE   crmt_output_sales_i_comt,
            lt_shipping_i    TYPE   crmt_output_shipping_i_comt,
            lt_schedlin_i    TYPE   crmt_output_schedlin_i_comt,
            lt_customer_i    TYPE   crmt_output_customer_i_comt,
            lt_partner_i     TYPE   crmt_output_partner_i_comt,
            lt_item_cstics_i TYPE   crmt_item_cstics_tab,
            lt_billing_i     TYPE   crmt_output_billing_i_comt,
            lt_cancel_i      TYPE   crmt_output_cancel_i_comt,
            lt_finprod_i     TYPE   crmt_output_finprod_i_comt,
            lt_ordprp_i      TYPE   crmt_output_ordprp_i_comt,
            lt_appointment_i TYPE   crmt_output_appointment_i_comt,
            lt_billplan_d_i  TYPE   crmt_output_billplan_d_i_comt,
            lt_billplan_i    TYPE   crmt_output_billplan_i_comt,
            lt_orderadm_i_qt TYPE   crmt_output_orderadm_i_qt_comt,
            lt_orderadm_i_in TYPE   crmt_output_orderadm_i_in_comt,
            lt_schedlin_i_cf TYPE   crmt_output_schedlin_i_cf_comt,
            lt_status_i      TYPE   crmt_output_status_i_comt,
            lt_working_set_e_s_bbp TYPE /1cn/working_set_e_s_bbp_t,
            lv_language LIKE  sy-langu,
            lo_order TYPE REF TO cl_doc_crm_order,
            lv_object_guid TYPE crmt_object_guid,
            lv_object_kind TYPE crmt_object_kind,
            lv_status TYPE jstat,
            lt_status TYPE TABLE OF jstat,
            lv_error_tab_wrk TYPE ssferror,
            ls_output_options TYPE ssfcompop.
    DATA: IP_SMART_FORM  Type     TDSFNAME,
          IO_APPL_OBJECT Type Ref To OBJECT,
         IO_APPL_OBJECT Type Ref to CL_DOC_CRM_ORDER_H,
          IO_PARTNER Type Ref to CL_PARTNER_PPF,
          IS_ARCHIVE_INDEX  Type TOA_DARA,
          CT_ARCHIVE_INDEX_TAB Type TSFDARA,
          IS_ARCHIVE_PARAMETERS  Type ARC_PARAMS,
          control_parameters TYPE ssfctrlop,
          IS_MAIL_APPL_OBJ  Type SWOTOBJID,
          IS_MAIL_RECIPIENT  Type SWOTOBJID,
          IS_MAIL_SENDER  Type SWOTOBJID,
          IP_USER_SETTINGS type TDBOOL,
          ES_DOCUMENT_OUTPUT_INFO type SSFCRESPD,
          ES_JOB_OUTPUT_INFO type SSFCRESCL,
          ES_JOB_OUTPUT_OPTIONS type SSFCRESOP.
    Resultado generado: Formato PDF
    data: l_pdf_xstring  type xstring,
          lt_lines       type table of tline,
          ls_line        type tline,
          l_pdf_len      type i,
          lv_exist       type n,
          output_data    type ssfcrescl,
          lp_proc_stat TYPE ppfdtstat.
    Explanation: this method executes the action,
    gets the medium, gets the log, reads the messages from
    the log and gets the spool id from the messages.     JLARIN 27/DIC/06
    DATA: lv_event TYPE REF TO cl_htmlb_event_tableview,
          lv_index TYPE int4,
          wa_action TYPE LINE OF crmt_action_table_tab,
          ls_action_obj TYPE REF TO if_action_ppf,
          lr_action TYPE REF TO cl_trigger_ppf,
          lr_medium type Ref to     if_medium_ppf,
         ls_action TYPE zcrmt_action,
          lv_spoolid TYPE symsgv.
    DATA:
         grid   type ref to cl_crm_ic_gridlayout,
         GLOBAL_EVENT     type string.
    data: lo_trigger type ref to CL_TRIGGER_PPF,
          lo_sfprint type ref to CL_SF_PRINT_PPF,
          lo_typed_context type ref to CL_CRM_IC_IRECACTIONPLAN_CTXT,
          lt_all_data type PPFSINPRRU.
    data: lo_rp_rc type i.
    DATA: lv_head_guid      TYPE crmt_object_guid.
      DATA: adminh     TYPE REF TO cl_crm_ic_irecactionplan_cn02,
            guidstring TYPE string,
            guid       TYPE crmt_object_guid,
            action_obj   TYPE crmt_action_obj_tab,
            lv_object_id TYPE crmt_object_id.
       DATA: request_event TYPE REF TO cl_htmlb_event.
       DATA: event_data    TYPE REF TO if_htmlb_data.
       DATA: event_value  type string.
        event_data = cl_htmlb_manager=>get_event_ex( request ).
        if event_data is bound.
          try.
              request_event ?= event_data.
            catch cx_sy_move_cast_error.
              clear request_event.
          endtry.
          event_value = event_data->event_id.
          translate event_value to lower case.             "#EC TRANSLANG
       endif.
       if event_value <> 'x1_x3_x17_x21_actionitems'.
          return.
       endif.
    TRY.
    create object lo_sfprint.
    create object lo_trigger.
        lv_exist = 1.
      Get the header GUID
        adminh = typed_context->btadminh.
        guidstring = adminh->get_actionitem( 'GUID' ).
        If guidstring is initial.
           return.
        endif.
        lv_head_guid = guidstring.
        CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
          EXPORTING
            iv_orderadm_h_guid     = lv_head_guid
          IMPORTING
            ev_object_id           = lv_object_id
          EXCEPTIONS
            admin_header_not_found = 1
            OTHERS                 = 2.
           CALL FUNCTION 'CRM_ACTION_GET_TOOLBAR_IL'
          EXPORTING
            iv_ref_guid     = lv_head_guid
            iv_ref_kind     = 'A'
          IMPORTING
            et_action_obj   = action_obj
            et_action_fld   = action_fld
          EXCEPTIONS
            parameter_error = 1
            error_occurred  = 2
            error_message   = 3
            OTHERS          = 4.
        IF sy-subrc EQ 0.
          LOOP AT action_fld INTO wa_action where applkey = lv_object_id.
          ENDLOOP.
          IF sy-subrc EQ 0.
             ls_action_obj = wa_action-action.
             lv_exist = 0.
          ENDIF.
        ENDIF.
        if lv_exist is initial.
        CALL METHOD ls_action_obj->get_processing
         IMPORTING
           ei_processing = lr_medium.
        CALL METHOD lo_trigger->get_appl
          RECEIVING
            result = io_appl_object.
          call function 'CRM_ACTION_GET_APPL_OBJECT'
            exporting
              iv_ref_guid          = lv_head_guid
              iv_ref_kind          = 'A'
            IMPORTING
              EV_APPL_OBJECT       = io_appl_object.
        CALL METHOD lr_medium->execute
          EXPORTING
            io_appl_ref       = io_appl_object   "lo_appl_ref
          RECEIVING
            rp_status         = lp_proc_stat
          EXCEPTIONS
            missing_arguments = 1
            OTHERS            = 2.
      ip_smart_form =  lr_medium->get_smartform( ).
        ip_smart_form = 'ZIMPR_ORDEN_RASTREO'.
      get the function name for this smart form
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname           = ip_smart_form
          IMPORTING
            fm_name            = function_name
          EXCEPTIONS
            no_form            = 1
            no_function_module = 2
            OTHERS             = 3.
    determine the tables of the application
      CALL FUNCTION 'CRM_OUTPUT_SINGLE_READ'
        EXPORTING
          iv_object                 = io_appl_object
          iv_smart_form             = ip_smart_form
          ir_partner                = io_partner
        IMPORTING
          es_output_orderadm_h      = ls_orderadm_h
          es_output_activity_h      = ls_activity_h
          es_output_lead_h          = ls_lead_h
          es_output_opport_h        = ls_opport_h
          es_output_orgman_h        = ls_orgman_h
          es_output_pricingdata_h   = ls_pricingdata_h
          es_output_sales_h         = ls_sales_h
          es_output_shipping_h      = ls_shipping_h
          et_output_partner_h       = lt_partner_h
          et_output_payplan_d_h     = lt_payplan_d_h
          es_output_customer_h      = ls_customer_h
          es_output_cumulat_h       = ls_cumulat_h
          et_output_billing_h       = lt_billing_h
          et_output_cancel_h        = lt_cancel_h
          et_output_appointment_h   = lt_appointment_h
          et_output_billplan_d_h    = lt_billplan_d_h
          et_output_billplan_h      = lt_billplan_h
          et_output_status_d_h      = lt_status_d_h
          et_output_status_h        = lt_status_h
          et_output_srv_subject_h   = lt_srv_subject_h
          et_output_srv_reason_h    = lt_srv_reason_h
          et_output_srv_result_h    = lt_srv_result_h
          es_output_acs_h           = ls_acs_h
          et_output_orderadm_i      = lt_orderadm_i
          et_output_orgman_i        = lt_orgman_i
          et_output_pricingdata_i   = lt_pricingdata_i
          et_output_pricing_i       = lt_pricing_i
          et_output_product_i       = lt_product_i
          et_output_sales_i         = lt_sales_i
          et_output_shipping_i      = lt_shipping_i
          et_output_schedlin_i      = lt_schedlin_i
          et_output_partner_i       = lt_partner_i
          et_item_cstics_i          = lt_item_cstics_i
          et_output_customer_i      = lt_customer_i
          et_output_billing_i       = lt_billing_i
          et_output_cancel_i        = lt_cancel_i
          et_output_finprod_i       = lt_finprod_i
          et_output_ordprp_i        = lt_ordprp_i
          et_output_appointment_i   = lt_appointment_i
          et_output_billplan_d_i    = lt_billplan_d_i
          et_output_billplan_i      = lt_billplan_i
          et_output_orderadm_i_qt   = lt_orderadm_i_qt
          et_output_orderadm_i_in   = lt_orderadm_i_in
          et_output_schedlin_i_cf   = lt_schedlin_i_cf
          et_output_status_i        = lt_status_i
          et_output_wrk_set_e_s_bbp = lt_working_set_e_s_bbp
          ev_language               = lv_language.
      control_parameters-langu = sy-langu.
      control_parameters-no_dialog = 'X'.
      control_parameters-getotf    = 'X'.
    call function to process smart form
      CALL FUNCTION function_name
        EXPORTING
          archive_index        = is_archive_index
          archive_index_tab    = ct_archive_index_tab
          archive_parameters   = is_archive_parameters
          control_parameters   = control_parameters
          mail_appl_obj        = is_mail_appl_obj
          mail_recipient       = is_mail_recipient
          mail_sender          = is_mail_sender
          output_options       = ls_output_options
          user_settings        = ip_user_settings
          orderadm_h           = ls_orderadm_h
          activity_h           = ls_activity_h
          lead_h               = ls_lead_h
          opport_h             = ls_opport_h
          orgman_h             = ls_orgman_h
          partner_h            = lt_partner_h
          pricingdata_h        = ls_pricingdata_h
          sales_h              = ls_sales_h
          shipping_h           = ls_shipping_h
          payplan_d_h          = lt_payplan_d_h
          cumulat_h            = ls_cumulat_h
          customer_h           = ls_customer_h
          acs_h                = ls_acs_h
          billing_h            = lt_billing_h
          cancel_h             = lt_cancel_h
          appointment_h        = lt_appointment_h
          billplan_d_h         = lt_billplan_d_h
          billplan_h           = lt_billplan_h
          status_d_h           = lt_status_d_h
          status_h             = lt_status_h
          srv_subject_h        = lt_srv_subject_h
          srv_reason_h         = lt_srv_reason_h
          srv_result_h         = lt_srv_result_h
          orderadm_i           = lt_orderadm_i
          orderadm_i_qt        = lt_orderadm_i_qt
          orderadm_i_in        = lt_orderadm_i_in
          orgman_i             = lt_orgman_i
          pricingdata_i        = lt_pricingdata_i
          pricing_i            = lt_pricing_i
          product_i            = lt_product_i
          sales_i              = lt_sales_i
          schedlin_i           = lt_schedlin_i
          schedlin_i_cf        = lt_schedlin_i_cf
          shipping_i           = lt_shipping_i
          partner_i            = lt_partner_i
          item_cstics_i        = lt_item_cstics_i
          customer_i           = lt_customer_i
          billing_i            = lt_billing_i
          cancel_i             = lt_cancel_i
          finprod_i            = lt_finprod_i
          ordprp_i             = lt_ordprp_i
          appointment_i        = lt_appointment_i
          billplan_d_i         = lt_billplan_d_i
          billplan_i           = lt_billplan_i
          status_i             = lt_status_i
          working_set_e_s_bbp  = lt_working_set_e_s_bbp
          language             = lv_language
        IMPORTING
          document_output_info = es_document_output_info
          job_output_info      = output_data
          job_output_options   = es_job_output_options
        EXCEPTIONS
          output_canceled      = 1
          parameter_error      = 2
          OTHERS               = 3.
        call function 'CONVERT_OTF'
          EXPORTING
            format                = 'PDF'
          IMPORTING
            bin_filesize          = l_pdf_len
            bin_file              = l_pdf_xstring
          TABLES
            OTF                   = OUTPUT_DATA-OTFDATA
            LINES                 = LT_LINES
          EXCEPTIONS
            err_max_linewidth     = 1
            err_format            = 2
            err_conv_not_possible = 3
            err_bad_otf           = 4
            others                = 5.
          IF SY-SUBRC = 0.
            DATA: lv_string TYPE string,
                  lv_numguid(10) TYPE N.
            lv_string = lv_spoolid.
            lv_numguid = lv_object_id.
           CALL METHOD op_previewspool( iv_spoolid = lv_string ).
            me->op_previewspool( iv_spoolid     = lv_string
                                 lv_pdf_xstring = l_pdf_xstring
                                 lv_guid        = lv_numguid ).
          ENDIF.
        endif.
        CATCH cx_sy_move_cast_error.
      ENDTRY.
    ENDMETHOD.
    <b>This part send the result to a new windows and refresh a main page, but thow a error 503 ...</b>
    method OP_PREVIEWSPOOL .
    *{   INSERT         CRDK902447                                        1
      DATA: lv_url TYPE string.
    DATA: cached_response TYPE REF TO if_http_response,
          new_navegator   TYPE REF TO CL_WB_NAVIGATOR_NEW_WINDOW,
          new_navigation   TYPE REF TO CL_BSP_NAVIGATION.
    DATA: guid TYPE guid_32.
    Resultado generado: Formato PDF
      data: l_pdf_xstring  type xstring,
            display_url    type string,
            pagina_url    type string,
            display_pag    type string,
            V_TARGET_URL   TYPE STRING,
            W_APP_NAME     TYPE STRING,
            l_pdf_len      type i.
    DATA:  out TYPE REF TO IF_BSP_WRITER,
            lv_out TYPE REF TO cl_BSP_WRITER,
            lv_context Type Ref to IF_BSP_PAGE_CONTEXT,
            lv_body type string,
            lv_body2 type string,
            lv_guidmem(10) type n,
            lv_doscmd(200),
            lv_pag   type xstring,
            lv_back(2) type n.
    IF not lv_pdf_xstring is initial.
        CREATE OBJECT cached_response TYPE CL_HTTP_RESPONSE EXPORTING add_c_msg = 1.
        l_pdf_len = xstrlen( lv_pdf_xstring ).
        cached_response->set_data( data   = lv_pdf_xstring
                              length = l_pdf_len ).
        cached_response->set_header_field( name  = if_http_header_fields=>content_type
                                           value = 'application/pdf' ).
         cached_response->set_header_field(
                            name  = 'content-disposition'
                            value = 'attachment; filename = test.pdf' ).
        cached_response->set_status( code = 200 reason = 'OK' ).
        cached_response->server_cache_expire_rel( expires_rel = 180 ).
        CALL FUNCTION 'GUID_CREATE'
          IMPORTING
            ev_guid_32 = guid.
    DATA:
        LV_HOST     TYPE STRING,     "Host name
        LV_PORT     TYPE STRING,     "Port Number
        LV_LOCAL_URL     TYPE STRING,     "URL (Relative to the Current Server)
        LV_ABS_URL     TYPE STRING,     "URL (Absolute, incl. Protocol, Host, Port)
        LV_PROTOCOL     TYPE STRING,     "Available Protocol
        LV_servidor     TYPE STRING.     "Available Protocol
    Construct the Target URL
          CALL METHOD RUNTIME->CONSTRUCT_BSP_URL
            EXPORTING
              IN_PROTOCOL       = 'http'
              IN_APPLICATION_NS = RUNTIME->APPLICATION_NAMESPACE
              IN_APPLICATION    = 'crm_ic'
              IN_PAGE           = '**/crm_ic'
            IMPORTING
              OUT_ABS_URL       = V_TARGET_URL
              OUT_HOST          = LV_HOST
              OUT_PORT          = LV_PORT
              OUT_LOCAL_URL     = LV_LOCAL_URL
              OUT_PROTOCOL      = LV_PROTOCOL.
            CONCATENATE 'crm_ic' '/**/' INTO W_APP_NAME.
          REPLACE W_APP_NAME IN V_TARGET_URL WITH SPACE.
        CONCATENATE V_TARGET_URL '/' guid '.pdf' INTO display_url.
        cl_http_server=>server_cache_upload( url      = display_url
                                             response = cached_response ).
        lv_url = adapter->if_bsp_page~get_page_url( ).
        if LV_PORT is initial.
           concatenate 'http://' LV_HOST lv_url+0(61) 'default.do' into lv_url.
        else.
           concatenate 'http://' LV_HOST ':' LV_PORT lv_url+0(61) 'default.do' into lv_url.
        endif.
          lv_body2 = '<html><head><script language=JavaScript>'.
          concatenate lv_body2 'window.open("' display_url '"); ' INTO lv_body2.
          concatenate lv_body2 ' location.href = "' lv_url '";  </script></head>' INTO lv_body2.
          concatenate lv_body2 '<body></body></html>' INTO lv_body2.
         concatenate lv_body2 ' function back(){ history.back( ); } </script></head>' INTO lv_body2.
         concatenate lv_body2 '<body><a href="javascript:back();">regresar</a></body></html>' INTO lv_body2.
          response->append_cdata( data = lv_body2 ) .
          response->set_header_field( name  = 'content-type'
                                      value = 'text/html' ). "#EC NOTEXT
          response->set_header_field( name = 'cache-control' value = 'max-age=0' ). "#EC NOTEXT
         response->set_header_field( name = 'Expires' value = '0' ). "#EC NOTEXT
          navigation->response_complete( ).
    return.
    ENDIF.
    endmethod.

    Using the search bar, it seems it's a proxy issue, but finding a simple solution did not seem apparent.  Have you tried a reboot?  To reboot, hold the power and home buttons at the same time for at least 10 seconds (hold past the swipe to shut down bar, should it appear) until the Apple Logo appears, then let go fo both buttons and your iPad will restart.  Hopefully, this will solve the problem......

  • RE: Re[2]: Service Object events and LockMgr

    I think there are a lot to implement a lock manager. If several objects
    should be updated in one transaction, the lock manager should be able to
    handle rollbacks. Other things like release lock when exception happens,
    avoiding dead locks, etc. Most of the features are provided by DBMS, so
    I think using a option 2 would be a better solution.
    -----Original Message-----
    From: Dimitar Gospodinov [mailto:[email protected]]
    Sent: Wednesday, July 28, 1999 2:44 PM
    To: Peter Sham
    Cc: Duncan Kinnear; [email protected]
    Subject: Re[2]: Service Object events and LockMgr
    Hello Peter,
    Wednesday, July 28, 1999, 9:19:10 PM, you wrote:
    PS> Hi,
    PS> Just wonder exactly how this Lock Manager can be
    implemented. Do you mean that you are
    PS> going to cache every object that is instantiated from the
    database? Or you just cache
    PS> the object id, primary key, etc?
    PS> Frankly speaking, I won't attempt to due with this kind
    of currency coding myself as
    PS> the database vendor has spent years in coding just to do this.
    PS> Regards.
    The second one - you just need some unique value that will identify
    the object being locked. You should register with the Lock
    Manager only
    the objects that you want to lock.
    For me, one of the goal of such pattern is to give you some freedom
    from the specifics of the database lock mechanism.
    Another benefit that I can see is that using such approach you can
    always answer to the question: "Can I modify/delete this object?".
    Best regards,
    Dimitar mailto:[email protected]
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

    I think there are a lot to implement a lock manager. If several objects
    should be updated in one transaction, the lock manager should be able to
    handle rollbacks. Other things like release lock when exception happens,
    avoiding dead locks, etc. Most of the features are provided by DBMS, so
    I think using a option 2 would be a better solution.
    -----Original Message-----
    From: Dimitar Gospodinov [mailto:[email protected]]
    Sent: Wednesday, July 28, 1999 2:44 PM
    To: Peter Sham
    Cc: Duncan Kinnear; [email protected]
    Subject: Re[2]: Service Object events and LockMgr
    Hello Peter,
    Wednesday, July 28, 1999, 9:19:10 PM, you wrote:
    PS> Hi,
    PS> Just wonder exactly how this Lock Manager can be
    implemented. Do you mean that you are
    PS> going to cache every object that is instantiated from the
    database? Or you just cache
    PS> the object id, primary key, etc?
    PS> Frankly speaking, I won't attempt to due with this kind
    of currency coding myself as
    PS> the database vendor has spent years in coding just to do this.
    PS> Regards.
    The second one - you just need some unique value that will identify
    the object being locked. You should register with the Lock
    Manager only
    the objects that you want to lock.
    For me, one of the goal of such pattern is to give you some freedom
    from the specifics of the database lock mechanism.
    Another benefit that I can see is that using such approach you can
    always answer to the question: "Can I modify/delete this object?".
    Best regards,
    Dimitar mailto:[email protected]
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive
    <URL:http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

  • Re: Service Object events and LockMgr

    On the option that you have considered, I have implemented the same model
    in my previous project (using Java/RMI), but I felt that it is more than
    what is normally needed for concurrency protection.
    I can suggest another option that is worth considering which is in place in
    our app for concurrency.
    Almost every table in our db has created By, created On, modifed By,
    modified On columns. The parent class of all business objects has
    attributes that correspond to these four columns. In addition to these
    four, there is a fifth attribute (introduced when concurrency was built)
    called originalModifiedOn. Upon retrieval from the db, it is set to
    modifiedOn value (from the db), during UPDATE, the value in this column is
    added part of the WHERE clause. So when the second user tried to do save
    the same object, the underlying db update will get a 'zero rows updated'
    which is translated into an application error 'possible concurrency
    error'. The user re-retreives the now 'stale' object before applying their
    edits.
    A lot of these things are and can be built into the framework imposing very
    little work that each Object needs to do to have concurrency protection.
    I am not sure if there is a mention in the Patterns paper of this model,
    but it is very easy to implement and supports what is needed.
    Kishore Puvvada's Mail
    [email protected] on 07/28/99 01:47:00 AM
    To: [email protected]@INTERNET
    cc: (bcc: Kishore Puvvada/HQ-IS/TAL)
    Subject: Service Object events and LockMgr
    Hi folks,
    We're currently looking at strategies for dealing with the simultaneous
    updates to the database from multiple clients (concurrency
    management). That is when two (or more) clients load the same object to
    edit it, then make different changes and save them to the database.
    We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    think) which describes three methods of dealing with this:
    1) Lock the database table row as soon as a client select it for editing
    and hold the lock until it is saved.
    2) Immediately before 'saving' check that the database hasn't changed
    (either by reading what's there before updating, or by using a huge
    'where' clause that contains all unchanged fields)
    3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    proxies to allow locking and updating notification between the clients.
    Option 3 is obviously the most robust method, but it requires a fair
    amount of coding and could also be a bottleneck for database reads and
    writes.
    But I have another option for which I was looking for opinions. What if
    we had a "Change Event manager" which broadcast an event every time
    a change is made to the database. Each business class would have its
    own event. If the event had the object's primary key as a parameter, then
    clients editing that particular object type could check to see if the object
    currently on screen is the one that changed. That way you could disable
    the 'save' until they had refreshed their on-screen data.
    It's not particularily elegant, but it's reasonably simple to implement. It
    also deals with changes sent across our WAN from other database
    servers.
    But this option is only worthwhile if you can replicate the "Change Event
    manager" SO and still register for an event on the client. Can clients
    register for SO events and receive an event generated by any of the SO's
    replicates? Or when you register for an SO's event do you register for
    only one instance of the SO?
    Thanks in advance for any answers.
    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
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:
    http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

    On the option that you have considered, I have implemented the same model
    in my previous project (using Java/RMI), but I felt that it is more than
    what is normally needed for concurrency protection.
    I can suggest another option that is worth considering which is in place in
    our app for concurrency.
    Almost every table in our db has created By, created On, modifed By,
    modified On columns. The parent class of all business objects has
    attributes that correspond to these four columns. In addition to these
    four, there is a fifth attribute (introduced when concurrency was built)
    called originalModifiedOn. Upon retrieval from the db, it is set to
    modifiedOn value (from the db), during UPDATE, the value in this column is
    added part of the WHERE clause. So when the second user tried to do save
    the same object, the underlying db update will get a 'zero rows updated'
    which is translated into an application error 'possible concurrency
    error'. The user re-retreives the now 'stale' object before applying their
    edits.
    A lot of these things are and can be built into the framework imposing very
    little work that each Object needs to do to have concurrency protection.
    I am not sure if there is a mention in the Patterns paper of this model,
    but it is very easy to implement and supports what is needed.
    Kishore Puvvada's Mail
    [email protected] on 07/28/99 01:47:00 AM
    To: [email protected]@INTERNET
    cc: (bcc: Kishore Puvvada/HQ-IS/TAL)
    Subject: Service Object events and LockMgr
    Hi folks,
    We're currently looking at strategies for dealing with the simultaneous
    updates to the database from multiple clients (concurrency
    management). That is when two (or more) clients load the same object to
    edit it, then make different changes and save them to the database.
    We have a copy of a Fort&eacute; document (from the "Patterns" course, I
    think) which describes three methods of dealing with this:
    1) Lock the database table row as soon as a client select it for editing
    and hold the lock until it is saved.
    2) Immediately before 'saving' check that the database hasn't changed
    (either by reading what's there before updating, or by using a huge
    'where' clause that contains all unchanged fields)
    3) The Fort&eacute; "LockMgr" pattern, which uses a service object with notifier
    proxies to allow locking and updating notification between the clients.
    Option 3 is obviously the most robust method, but it requires a fair
    amount of coding and could also be a bottleneck for database reads and
    writes.
    But I have another option for which I was looking for opinions. What if
    we had a "Change Event manager" which broadcast an event every time
    a change is made to the database. Each business class would have its
    own event. If the event had the object's primary key as a parameter, then
    clients editing that particular object type could check to see if the object
    currently on screen is the one that changed. That way you could disable
    the 'save' until they had refreshed their on-screen data.
    It's not particularily elegant, but it's reasonably simple to implement. It
    also deals with changes sent across our WAN from other database
    servers.
    But this option is only worthwhile if you can replicate the "Change Event
    manager" SO and still register for an event on the client. Can clients
    register for SO events and receive an event generated by any of the SO's
    replicates? Or when you register for an SO's event do you register for
    only one instance of the SO?
    Thanks in advance for any answers.
    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
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:
    http://pinehurst.sageit.com/listarchive/forte>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>

Maybe you are looking for

  • Error while executing agent.  ORABPEL-05006

    Hi: I have a bpel process waiting until a DbAdapter (with one Wait Activity) reads a record on database, but the problem is : - The record is in the database - The DbAdapter read it but the process don´t continue. - If the process is monitored by the

  • Post Invoice aganist Contract

    Hi, I have a scenario where i have to post invoice again Contract, I am not able to post using MIRO and FB60 or i may be approaching wrong. Could somebody please tell me how to approach to this problem? should i use any BADI? if yes could you please

  • Document Id from the POID?

    Hi all, I need to read a kpro document from a content repository. I have the POID (object class, ) but need the physical document ID. I have the content repository id. I would like to show the document with the FM ARCHIVOBJECT_DISPLAY How can I achie

  • ADCS certificate enrollment error with RPC

    I'm attempting to enroll in a computer certificate that works for a windows clients (W7), but not for the Apple (OS 10.9.4) clients.  I've been using the following document, with no success (http://support.apple.com/kb/HT5357).  The enrollment is bei

  • How do I delete unwanted folder from my email?

    I am using yahoo email and was wondering is there a way to delete unwanted folders from my email? I have tried deleting them but I get a blank box and can't proceed until I name the folder that I do not want. Any ideas will be appreciated. Thank you.