Blazeds messaging services object cast

hi everyone i am new to flex and blazeds i am using messaging services for my app and sending objects through messages.
message.body = new object1()
message.body.object = someobject;
myproducer.send(message);
on recieving hand
i can reach message.body.object.name but when i assign this object to some object like
var newobject:type1  = message.body.object as type1;
and try to get name from newobject.name i got empty object error error type 1009
is there anybody help or any clue
thank you.

Ok, so well no one responded...In case anyone in the future
stumbles into this problem, I think I've found out the problem.
Since I was deleting this info, I was sending the delete
request to my java code (which read the array of ChartObjects and
deleted each one using the name of the chart to delete it from the
database) and then immediately afterwards, I was deleting the same
data structures in my flex code.
Apparently Flex doesn't copy the data and send it, but sends
the actual data or a reference to it. So even though my lines to
remove the data were after the database delete request, by the time
the database deletion got executed in the system, the data had been
erased by flex. It seems like Flex does not handle events in
sequential order as it is written in the code. I've run into this
in other places with messaging and flex. So I'll just have to
rewrite the logic to take into account this behavior.

Similar Messages

  • Explicity mapping between ActionScript and Java objects for the BlazeDS Messaging Service

    The BlazeDS documentation shows how to explicitly map between ActionScript and Java objects. For example, this works fine for RPC services, e.g.
    import flash.utils.IExternalizable;
    import flash.utils.IDataInput;
    import flash.utils.IDataOutput;
    [Bindable]
    [RemoteClass(alias="javaclass.User")]
    public class User implements IExternalizable {
            public var id : String;
            public var secret : String;
            public function User() {
            public function readExternal(input : IDataInput) : void {
                    id = input.readObject() as String;
            public function writeExternal(output : IDataOutput) : void {
                    output.writeObject(id);
    and
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    public class User implements Externalizable {
        protected String id;
        protected String secret;
        public String getId() {
            return id;
        public void setId(String id) {
            this.id = id;
        public String getSecret() {
            return secret;
        public void setSecret(String secret) {
            this.secret = secret;
        public void readExternal(ObjectInput in) throws IOException,
                    ClassNotFoundException {
            id = (String) in.readObject();
        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeObject(id);
    If I called an RPC service that returns a User, the secret is not sent over the wire.  Is it also possible to do this for the messaging service? That is, if I create a custom messaging adapter and use the function below, can I also prevent secret from being sent?
    MessageBroker messageBroker = MessageBroker.getMessageBroker(null);
    AsyncMessage message = new AsyncMessage();
    message.setDestination("MyMessagingService");
    message.setClientId(UUIDUtils.createUUID());
    message.setMessageId(UUIDUtils.createUUID());
    User user = new User();
    user.setId("id");
    user.setSecret("secret");
    message.setBody(user);
    messageBroker.routeMessageToService(message, null);

    Hi Martin. The way that AMF serialization/deserialization works for BlazeDS is the same regardless of which service is being used, so yes that code will work for messaging as well. On the server, the serialization/deserialization of messages happens at the endpoint. For an incoming message for example, the endpoint deserializes the message and then hands it off to the MessageBroker which decides which service/destination to deliver the message to.
    That was a good question. Thanks for asking it. Lots of people are used to doing custom serialization/deserialization with the RPC services (RemoteObject/RemotingService) but I'm not sure everyone realizes they can do this for messaging as well.
    -Alex

  • BlazeDS configuration with coldfusion/java No destination 'testClass' exists in service flex.messaging.services.RemotingService"

    Hi
      I have an application which requires interaction with both coldfusion and java.I have taken the configuration files from the blazeDS turnkey project and added it to my application.My application server is  coldfusion  deployed in a weblogic.I was able to call coldfusion from my flex but whenever i try making java calls i get the following error
    [RPC Fault faultString="No destination 'testClass' exists in service flex.messaging.services.RemotingService" faultCode="Server.Processing" faultDetail="null"]
    services-config file is as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <services-config>
        <services>
            <service-include file-path="remoting-config.xml" />
            <!--<service-include file-path="proxy-config.xml" />
            <service-include file-path="messaging-config.xml" />-->
        </services>
        <security>
            <login-command class="flex.messaging.security.JRunLoginCommand" server="JRun"/>
            <!-- Uncomment the correct app server
            <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
            <login-command class="flex.messaging.security.WeblogicLoginCommand" server="Weblogic"/>
            <login-command class="flex.messaging.security.WebSphereLoginCommand" server="WebSphere"/>
            -->
            <!--
            <security-constraint id="basic-read-access">
                <auth-method>Basic</auth-method>
                <roles>
                    <role>guests</role>
                    <role>accountants</role>
                    <role>employees</role>
                    <role>managers</role>
                </roles>
            </security-constraint>
            -->
        </security>
        <channels>
            <!--  CF Based Endpoints -->
            <channel-definition id="my-cfamf" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://localhost:7002/flex2gateway/" class="flex.messaging.endpoints.AMFEndpoint"/>
                <properties>
                    <polling-enabled>false</polling-enabled>
                    <serialization>
                        <instantiate-types>false</instantiate-types>
                    </serialization>
                </properties>
            </channel-definition>
            <channel-definition id="cf-polling-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://{server.name}:{server.port}{context.root}/flex2gateway/cfamfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
                <properties>
                    <polling-enabled>true</polling-enabled>
                    <polling-interval-seconds>8</polling-interval-seconds>
                    <serialization>
                        <instantiate-types>false</instantiate-types>
                    </serialization>
                </properties>
            </channel-definition>
            <channel-definition id="my-cfamf-secure" class="mx.messaging.channels.SecureAMFChannel">
                <endpoint uri="https://{server.name}:{server.port}{context.root}/flex2gateway/cfamfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
                <properties>
                    <polling-enabled>false</polling-enabled>
                    <serialization>
                        <instantiate-types>false</instantiate-types>
                    </serialization>
                </properties>
            </channel-definition>
            <!--  Java Based Endpoints -->
            <channel-definition id="java-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://localhost:7002/flex2gateway/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
            </channel-definition>
            <channel-definition id="java-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
                <endpoint uri="https://{server.name}:{server.port}{context.root}/flex2gateway/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
            </channel-definition>
            <channel-definition id="java-polling-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://{server.name}:{server.port}{context.root}/flex2gateway/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
                <properties>
                    <polling-enabled>true</polling-enabled>
                    <polling-interval-seconds>8</polling-interval-seconds>
                </properties>
            </channel-definition>
            <!--
            <channel-definition id="java-http" class="mx.messaging.channels.HTTPChannel">
                <endpoint uri="http://{server.name}:{server.port}{context.root}/flex2gateway/http" class="flex.messaging.endpoints.HTTPEndpoint"/>
            </channel-definition>
            <channel-definition id="java-secure-http" class="mx.messaging.channels.SecureHTTPChannel">
                <endpoint uri="https://{server.name}:{server.port}{context.root}/flex2gateway/httpsecure" class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
            </channel-definition>
            -->
        </channels>
        <logging>
            <target class="flex.messaging.log.ConsoleTarget" level="Error">
                <properties>
                    <prefix>[BlazeDS] </prefix>
                    <includeDate>false</includeDate>
                    <includeTime>false</includeTime>
                    <includeLevel>false</includeLevel>
                    <includeCategory>false</includeCategory>
                </properties>
                <filters>
                    <pattern>Endpoint.*</pattern>
                    <pattern>Service.*</pattern>
                    <pattern>Configuration</pattern>
                    <pattern>Message.*</pattern>
                </filters>
            </target>
        </logging>
        <system>
           <!-- <manageable>false</manageable>-->
            <!--
            <redeploy>
                <enabled>true</enabled>
                <watch-interval>20</watch-interval>
                <watch-file>{context.root}/WEB-INF/flex/services-config.xml</watch-file>
                <watch-file>{context.root}/WEB-INF/flex/proxy-config.xml</watch-file>
                <watch-file>{context.root}/WEB-INF/flex/remoting-config.xml</watch-file>
                <watch-file>{context.root}/WEB-INF/flex/messaging-config.xml</watch-file>
                <watch-file>{context.root}/WEB-INF/flex/data-management-config.xml</watch-file>
                <touch-file>{context.root}/WEB-INF/web.xml</touch-file>
            </redeploy>
             -->
        </system>
    </services-config>
    remote-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="remoting-service"
        class="flex.messaging.services.RemotingService"
        messageTypes="flex.messaging.messages.RemotingMessage">
        <adapters>
            <adapter-definition id="cf-object" class="coldfusion.flash.messaging.ColdFusionAdapter" default="true"/>
            <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter"/>
        </adapters>
        <default-channels>
            <channel ref="my-cfamf"/>
        </default-channels>
        <destination id="ColdFusion">
            <channels>
                <channel ref="my-cfamf"/>
            </channels>
            <properties>
                <source>*</source>
                <!-- define the resolution rules and access level of the cfc being invoked -->
                <access>
                    <!-- Use the ColdFusion mappings to find CFCs, by default only CFC files under your webroot can be found. -->
                    <use-mappings>false</use-mappings>
                    <!-- allow "public and remote" or just "remote" methods to be invoked -->
                    <method-access-level>remote</method-access-level>
                </access>
                <property-case>
                    <!-- cfc property names -->
                    <force-cfc-lowercase>false</force-cfc-lowercase>
                    <!-- Query column names -->
                    <force-query-lowercase>false</force-query-lowercase>
                    <!-- struct keys -->
                    <force-struct-lowercase>false</force-struct-lowercase>
                </property-case>
            </properties>
        </destination>
    <destination id="testClass">
            <properties>
                    <source>TestClass</source>
            </properties>
    <adapter ref="java-object" />
            <channels>
                <channel ref="java-amf"/>
            </channels>
        </destination>
        <destination id="testClass2">
            <properties>
                    <source>TestClass2</source>
            </properties>
      <adapter ref="java-object"/>
            <channels>
                <channel ref="java-amf"/>
            </channels>
        </destination>
    </service>
    Can anyone please tell me where i m  going wrong.Is that because i m using flex2gateway for java calls?.I used it since it was how it has been configured in the turnkey project for coldfusion.I have replicated the file as it was there and since it is using flex2gateway even for javaEndpoints i felt we could use the same.
    regards
    Sidd

    Thanks for the reply. Yes, I did compile all the Java and it
    works OK with a simple Java program. It just will not work in a
    Flex application.
    The java classes are:
    RRA:
    package blah.myPackage;
    import java.util.List;
    import java.util.Collection;
    import flex.data.DataSyncException;
    import flex.data.assemblers.AbstractAssembler;
    class RRA extends AbstractAssembler
    public Collection fill( List fillParameters )
    RRS service = new RRS();
    return service.getSome();
    RRS:
    package blah.myPackage;
    import java.util.ArrayList;
    import java.util.List;
    import java.sql.*;
    import flex.EORS.*;
    class RRS
    public List getSome()
    ArrayList list = new ArrayList();
    String str = "bob";
    RR rr = new RR(str);
    list.add(rr);
    return list;
    RR:
    package blah.myPackage;
    class RR
    private String name;
    public RR() { }
    public RR(String name)
    this.name = name;
    public String getName()
    return this.name;
    public void setName(String name)
    this.name = name;
    I started with something that retrieved data from a database
    but watered it down just to try and get some kind of communication
    between Flex and Java.

  • Can objects returned from web services be cast to strongly typed objects?

    Can objects returned from web services be cast to strongly
    typed objects?
    Last I tried this was with one of the beta of Flex2 and it
    did not work. You had to use ObjectProxy or something like that...
    Thanks

    Please post this question in the CRM On Demand Integration Development forum.

  • 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>

  • 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>

    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&eacute; 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&eacute; "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>

  • 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

  • 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 PM

    I 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.
    Thanks

    Mail,
    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/

  • RE: log trace on Service Object

    I haven't tried myself; but got a copy from someone of part of technote
    10398 which says (the minimum you need is:)
    trc:in:1 Prints out information about interpreter state object.
    10 - Print method entry/exit
    trc:in:2 Trace the interpretation of method invocations and exception
    handling
    2 - Prints entry/exit and exceptions
    trc:in:51:1 Traces method entry/exit by task
    trc:in:54:1 Traces method entry/exit by application
    Try it.
    -----Original Message-----
    From: Eric Ab&eacute;cassis [mailto:[email protected]]
    Sent: Tuesday, April 13, 1999 10:24 AM
    To: Forte User List
    Subject: log trace on Service Object
    Hi Everybody,
    I would like to set log trace on each call (method entry and exit) on a
    Service Object, but I didn't find any log flag which helps me.
    Does someone have any ideas on how to do that ?
    Thank you for your help !
    Eric Ab&eacute;cassis <[email protected]>
    Senior Architect
    Sema Group DTS
    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 Eric,
    You can find on http://perso.club-internet.fr/dnguyen/ a little tool called CodeAdd which adds Entry and Return trace. I fact, you
    can use it to add any kind of code at the beginning and the end of your methods.
    It also allows you to add a pre-formated comments header in you code.
    In a further version, It may be possible to replace a code sequence from your methods. For instance, you may add a trace class and
    change a task.Part.LogMgr.Putline by a call to your own class, or need to suppress some lines.
    Just be carefull to use the tool on a local backupo of your repository : CodeAdd updates your methods directly in the repository.
    Hope this helps,
    Daniel Nguyen
    Freelance Forte Consultant
    Url : http://perso.club-internet.fr/dnguyen/
    Eric =?iso-8859-1?Q?Ab=E9cassis?= a &eacute;crit:
    Hi Everybody,
    I would like to set log trace on each call (method entry and exit) on a
    Service Object, but I didn't find any log flag which helps me.
    Does someone have any ideas on how to do that ?
    Thank you for your help !
    Eric Ab&eacute;cassis <[email protected]>
    Senior Architect
    Sema Group DTS
    Eric Ab&eacute;cassis <[email protected]>
    Senior Architect
    Sema Group DTS
    Eric Ab&eacute;cassis
    Senior Architect <[email protected]>
    Sema Group DTS Courrier HTML
    les Algorithmes - Pythagore A route des Lucioles, BP 279;Sophia Antipolis;;06905;France T&eacute;l. cellulaire: +33 (0) 6 62 36 68 83
    T&eacute;l&eacute;copie: +33 (0) 4 93 95 xx xx
    Bureau: +33 (0) 4 93 95 46 50
    Informations suppl&eacute;mentaires:
    le nom ABECASSIS
    Pr&eacute;nom Eric
    Version 2.1-
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • 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

  • SAP business one application messaging service

    Tried to get mailer working but I am not sure if it s because of SAP business one messaging service is stuck in a starting mode.

    Hi,
    Yes. Messaging service should started automatically.
    I think you need add your object name under Messaging service-->Right click-->Choose properties---Log on tab.. then this service starts automatically.
    Thanks & Regards,
    Nagarajan

  • OSB Jms Messaging Service

    Hi,
    i want to pass some kind of object argument using jms ObjectMessage and receive it from OSB proxy service.
    I create proxy service as messaging service. but i have no idea with Message Type.
    What kind of message type i should use to read java Object message?
    Is it possible ?
    actually, i am using OSB proxy service as Message receiver.
    then when i receive message, i need to read message from soap body and pass as arguments in business service.
    Is it possible to achieve this?
    With Regards,
    WP

    Hi Wai Phyo,
    waiphyo wrote:
    yeah that is true.
    but i still have no idea how to wrap xml into soap body.
    that's easy there are several ways for doing it, that's one of the easiest:
    http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html
    waiphyo wrote:
    and how to make message transformation in proxy services layer.
    to transform messages you have to use a mix and match of OSB "Message Processing" actions
    http://download.oracle.com/docs/cd/E13171_01/alsb/docs30/userguide/modelingmessageflow.html#wp1070403
    and either XQuery or XSLT or both called within your proxy actions.
    Regards,
    Tony

Maybe you are looking for