Loadbalancing a service object
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
Menghua Xiao wrote:
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?Ummmmm ...
How are you initializing these attributes? In your Init method? Do you need
to refer to any other SOs to do it? Forte does not guarantee the order in
which service objects are initialized. Referring to other SOs in the Init
method may not work, or it may work well for a long time and then suddenly
break when Forte decides to initialize things in a different order in
response to an upgrade, or to some random change in the application, or for
no known reason. If you're replicating, things could conceivably get even
more complex, with different replicates being initialized at different
times. And if one if the Init methods fails, Forte can't create the service
object, and your entire application fails to start.
Furthermore, Forte will tell you that attributes on a service object are a
bad idea. It's possible that they tell you this because there are bugs
around it that they're ashamed to tell you about (have you checked Forte's
web page?). Even if there are no bugs, there are a BUNCH of traps you can
fall into if you do this. The only time I consider it safe to have
attributes on a replicated SO is if those attributes can be reliably
maintained on that SO. This restricts it to:
* Database connection objects, and other such things that don't need to be
in synch.
* Static data that NEVER, NEVER changes.
The reason for these severe restrictions are that there are no reliable
ways to keep the two SOs in synch.
All that said, how can you get away with it? My religion says the best way
is to turn your attributes into virtual attributes. The quick and dirty way
to do this is:
1. Rename the attribute from AttrName to PrivateAttrName, and MAKE IT
PRIVATE.
2. Write a GetAttrName method that returns the attribute. This method
should check to see if the attribute is NIL, and if so load it. It ends
with "Return PrivateAttrName;".
3. Re-create AttrName as a virtual attribute, with "GetAttrName ()" (no
semicolon) as its get expression.
This approach gets the initialization of the attribute out of the Init
method, and instead forces initialization on the first reference. Hopefully
this solves all the problems. If it does not solve them, you ought at least
to get a useful error message out of your service object this way. I hope.
Good luck,
Tom Wyant
Similar Messages
-
Re: (forte-users) loadbalancing a service object
Hi,
If you need to share the values between your So, you can find a sample on
http://perso.club-internet.fr/dnguyen
It was designed to show how to manage shared states between replicates using
fail over. It could also be used for load-bancing. A better way should be to
manage the names of service objects within Forte (with the application,
project name and compatibility level), but through the NameServer.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
http://perso.club-internet.fr/dnguyen/
Xiao, Menghua a écrit:
Hello,
I tried to loadbalance a service object that has both methods and
attributes. The first copy of the service object works fine. However, all
the attributes of the second copy of the service object are nil when a
client try to use this copy. How can I make those two copies exactly the
same?
I am new to Forte. Any input will be greatly appreciated.
Menghua Xiao
Regional Transportation District,
Denver, Colorado, USA
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.comHi,
If you need to share the values between your So, you can find a sample on
http://perso.club-internet.fr/dnguyen
It was designed to show how to manage shared states between replicates using
fail over. It could also be used for load-bancing. A better way should be to
manage the names of service objects within Forte (with the application,
project name and compatibility level), but through the NameServer.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
http://perso.club-internet.fr/dnguyen/
Xiao, Menghua a écrit:
Hello,
I tried to loadbalance a service object that has both methods and
attributes. The first copy of the service object works fine. However, all
the attributes of the second copy of the service object are nil when a
client try to use this copy. How can I make those two copies exactly the
same?
I am new to Forte. Any input will be greatly appreciated.
Menghua Xiao
Regional Transportation District,
Denver, Colorado, USA
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
FIM MA Export errors. There is an error executing a web service object creation.
While checking for the permission, we have figured that the Built-In Synchronization account is being deleted by an Expiration Workflow.
FIM MA Export errors. There is an error executing a web service object creation.
While checking for the permission, we have figured that the Built-in Synchronization account was deleted by an Expiration Workflow
Is there a way to restore. Thanks.I would re-run FIM setup - I think it can re-create this account
If you found my post helpful, please give it a Helpful vote. If it answered your question, remember to mark it as an Answer. -
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é 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é "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é 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é "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> -
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é 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é "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>Hi,
Just wonder exactly how this Lock Manager can be implemented. Do you mean that you are
going to cache every object that is instantiated from the database? Or you just cache
the object id, primary key, etc?
Frankly speaking, I won't attempt to due with this kind of currency coding myself as
the database vendor has spent years in coding just to do this.
Regards.
Dimitar Gospodinov wrote:
Hello Duncan,
Wednesday, July 28, 1999, 10:31:46 AM, you wrote:
DK> Hi folks,
DK> We're currently looking at strategies for dealing with the simultaneous
DK> updates to the database from multiple clients (concurrency
DK> management). That is when two (or more) clients load the same object to
DK> edit it, then make different changes and save them to the database.
DK> We have a copy of a Forté document (from the "Patterns" course, I
DK> think) which describes three methods of dealing with this:
DK> 1) Lock the database table row as soon as a client select it for editing
DK> and hold the lock until it is saved.
DK> 2) Immediately before 'saving' check that the database hasn't changed
DK> (either by reading what's there before updating, or by using a huge
DK> 'where' clause that contains all unchanged fields)
DK> 3) The Forté "LockMgr" pattern, which uses a service object with notifier
DK> proxies to allow locking and updating notification between the clients.
DK> Option 3 is obviously the most robust method, but it requires a fair
DK> amount of coding and could also be a bottleneck for database reads and
DK> writes.
DK> But I have another option for which I was looking for opinions. What if
DK> we had a "Change Event manager" which broadcast an event every time
DK> a change is made to the database. Each business class would have its
DK> own event. If the event had the object's primary key as a parameter, then
DK> clients editing that particular object type could check to see if the object
DK> currently on screen is the one that changed. That way you could disable
DK> the 'save' until they had refreshed their on-screen data.
DK> It's not particularily elegant, but it's reasonably simple to implement. It
DK> also deals with changes sent across our WAN from other database
DK> servers.
DK> But this option is only worthwhile if you can replicate the "Change Event
DK> manager" SO and still register for an event on the client. Can clients
DK> register for SO events and receive an event generated by any of the SO's
DK> replicates? Or when you register for an SO's event do you register for
DK> only one instance of the SO?
DK> Thanks in advance for any answers.
DK> Cheers,
DK> Duncan Kinnear,
DK> McCarthy and Associates, Email: [email protected]
DK> PO Box 764, McLean Towers, Phone: +64 6 834 3360
DK> Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
DK> -------------------------------------------------------------------------------
DK> Providing Integrated Software to the Meat Processing Industry for over 10 years
DK> -
DK> To unsubscribe, email '[email protected]' with
DK> 'unsubscribe forte-users' as the body of the message.
DK> Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/forte>
I would recommend you to use the following approach (of course if you
do not have some special requirements :) ):
1. You should have a LockManager that will synchronize all clients in
their attempt to modify/delete objects in your application.
2. Each client, when attempts to modify/delete some object, it must
LOCK it using the services provided with the LockManager.
3. The requested operation can be performed only after successful
locking.
4. If a lock can not be obtained (for example if the object is already
locked by some other client) then the operation is aborted.
The details of this pattern depends on your needs. :)
Hope this helps.
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> -
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 -
Is service object comes default in purchase order
Hi Abapers,
I am a Fucntional consultant. I would like to know whether the service object comes in the Purchase order defauly or any setting is ther behind.
Reg,
AshokHi,
Have you read my question properly. I was asking about Service Object key in Purchase Orders & Purchase Requisitions where we can attach External Documents.
Hope your doubt is clear.
Reg,
Ashok -
Disable pushbuttons from Attachment list for Service Object
Hi,
I want to disable push buttons for delete and edit from the toolbar of Attachment list from service objects.
how can this be achieved ?
thanks in advance.
Best Regards,
VinayakaHi Sandeep,
I am not totallt getting your point but can suggest following points:
1. Check whether these object are displaying in DIR's as object links.
2. If it is there then it shoud be displayed in document data of those objects.
3. Check that documents are properly checked-in.
Hope this may help.
Regards,
Ravindra -
Disabling delete button in service object list fom VA03
Hi all,
i want to disable the delete and change button in attachment list of service object list (GOS) IN T CODE VA03.
I have found that it can be done by modifying the method CHECK_STATUS of class CL_GOS_SRV_ATTACHMENT_LIST,
and then calling it in t code SGOS.
i have copied this class to a Z CLASS but unable to modify the method it asks for access key.
any help is highly appreciated with example.
thanks,
pankaj guptaHello,
The authorizations in GOS has nothing to do with the authorization in
application level, e.g. in VA03. In standard you can use the new
authorization object S_GOS_ATT from SAP note: 1293080.
Otherwise:
A possible workaround could be the following:
Without an authorization the attachments are only deletable by the
owners or by users with sapoffice administrator authorization. If you
do not give users this sapoffice admin authorization, than only the
owners are able to delete the attachments. See SAP note: 552127
(point 3).
OR due to a modification some functionalities can be restricted.
For more information you can read the SAP note: 491271.
Regards,
David -
How to upload images in Internet Service object ?
Hi,
I have to upload/change the existing image in Internet Service object (Z program). The path where my current images are as follows:-
SE80->Internet ServiceZ Program->Theme->MIME Object-->Images->( Here I have to uplaod the image)
Please tell me how to do that. The transport request has to be generated while uploading.
Saurabh Garghi Saurabh,
Try this thread.
But there the transaction used is SE 78
Upload .TIF images in SE78
would this be of some help for you?
Cheers..... -
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. -
How to extract the Private Note data in Document Service Object?
HI EXPERTS,
In transaction ME53N, display document, click on the Service Object button and enter a Private Note.
How to extract this data and show it in a report?
Moderator message: please analyse yourself before asking, describe your own efforts and where you are stuck when posting again.
locked by: Thomas Zloch on Aug 19, 2010 1:33 PMI did quite an amount of debug of transaction Code FB03.
SO_OBJECT_READ is the function module that is used to read this data.
The inputs are as below:
folder_id is generated from:
Within CL_GOS_SRV_PERSONAL_NOTE and METHOD check_status -->
CALL METHOD cl_binary_relation=>read_links_of_binrel
EXPORTING
is_object = is_lporb
ip_relation = 'PNOT'
ip_role = 'GOSAPPLOBJ'
IMPORTING
et_roles = lt_roles
where
is_lporb-typeid = BKPF
is_lporb-catid = BO
is_lporb-instid = 'CompanyCodeDoc nofiscal year'
lt_roles-instid+12 is used for the SO_OBJECT_READ function module
Thanks,
Ven
PS: if any body comes across a better solution, let me know. -
Unable to read the Inventory Service Object
Hi,
I got the error message when I startinv.
Errpr code: 603. Unable to read the Inventory Service Object in Novell
eDirectory.
Any one know how to fix it.
ThanksMail,
It appears that in the past few days you have not received a response to your
posting. That concerns us, and has triggered this automated reply.
Has your problem been resolved? If not, you might try one of the following options:
- Do a search of our knowledgebase at http://support.novell.com/search/kb_index.jsp
- Check all of the other support tools and options available at
http://support.novell.com.
- You could also try posting your message again. Make sure it is posted in the
correct newsgroup. (http://support.novell.com/forums)
Be sure to read the forum FAQ about what to expect in the way of responses:
http://support.novell.com/forums/faq_general.html
If this is a reply to a duplicate posting, please ignore and accept our apologies
and rest assured we will issue a stern reprimand to our posting bot.
Good luck!
Your Novell Product Support Forums Team
http://support.novell.com/forums/ -
Load Balancing, User Visible Service objects, Runningman
1. Load Balancing
Load Balancing a partition has nothing to do with single or multi-threaded
behaviour of that partition. If you load balance a partition it means that
you can start 1 or more copies of that partition. How many to start can be
specified. If the partition is load balanced there will be router partition
that routes calls to any of the services in that partition.
Now let us look at a special kind of partition (load balanced partition
that has an Env visible SO and a user visible DbSession). This is one of
the design patterns to acccess the database efficiently. Each of these
partitions are single threaded because DbSession is inherently single
threaded. This partition is single threaded because Dbsession is single
threaded and not because the partition is replicated.
Another case is when you make a partition load balanced and it has only
SO(s) made out of tool classes and does not have Dbsessions then each of
these partitions can run multi-threaded beacuse there are no
single-threaded objects to make the partition single threaded
2. User Visibility
Case A - If you have only User visible SO(s) in a partition then each
behaves like a global named object. Whoever accesses it will get a copy of
their own.
Case B - If you have a user visible SO and an Env Visible SO in the same
partition then the user visible SO will be private to the partition and
cannot be accessed from outside that partition.
3. Running Man
When you run an application by clicking on the running man Forte uses its
default partitioning scheme and runs the application. The partition scheme
that you made will be used only when you run the application distributed or
from the partition workshop. This is the time you might encounter errors if
your partitioning is not right.
Hope this helps.
NirmalDon,
You are right. I should have said - Forte uses its own partitioning scheme
not the default scheme you see when you open partition workshop.
Nirmal
From: Don Nelson <[email protected]>
To: Nirmal P Uppalapati <[email protected]>
Cc: [email protected]
Subject: Re: Load Balancing, User Visible Service objects, Running man
Date: Wednesday, October 22, 1997 10:45 PM
Nirmal,
One note on the "running man"...
At 08:12 PM 10/22/97 -0500, Nirmal P Uppalapati wrote:
3. Running Man
When you run an application by clicking on the running man Forte uses
its
default partitioning scheme and runs the application. The partitionscheme
that you made will be used only when you run the application distributedor
from the partition workshop. This is the time you might encounter errorsif
your partitioning is not right.
Actually, clicking on the "running man" from the repository or project
workshop will cause the application to be run VERY differently thanrunning
it distributed.
It's not technically correct to say that the default partitioning schemeis
used with the running man.
Forte consulting offers a deployment workshop that covers the finerpoints
of this and other distributed issues.
Don
============================================
Don Nelson
Regional Consulting Manager - Rocky Mountain Region
Forte Software, Inc.
Denver, CO
Corporate voice mail: 510-986-3810
aka: [email protected]
============================================
"If you ask me, though, any game without push-ups, hits, burns or noogies
is a sissy game." - Calvin
Maybe you are looking for
-
Issue with Customizing Condition-Dependent Document Output
Hello gurus! When we print a Bid Invitation on SRM menubar web "Output Control", Sap creates three new spool orders. The first contains the output format of our SmartForm ZBBP_BID INVITATION. The second contains the format of a external mail. And the
-
Final Cut Pro X -- Export is Low Quality?
I'm wondering about some of the behavior on export with Final Cut Pro X. While editing my videos, I set preferences to 'use proxy media' to make playback smoother. However, when I go to export the video as a high-quality 1080p file it's clear that Fi
-
ESS: Error while creating Family/Dependents record from portal
Hi All, I'm getting a critical error while creating family members and dependents record from portal. CRITICAL ERROR "Type conflict in the ASSIGN statement in the program CL_HRPA_CONVERT_0021_US=======CP ., error key: RFC_ERROR_SYSTEM_FAILURE"
-
Conditions for starting WF - BO BOR Purchase contract
Hi all, we have SRM application rel. 5.0 (Server 5.5) and our need is to deactivate contract's approvement, about a contract just approved, whe user modify some fields in header or item data on contract. Under dir SPRO --> SRM --> SRM Server --> Cros
-
How do I find out how much left I have on my iTunes gift card
I bought things off of the iTunes Store and I want to know how much I have left on it