J2EE client mapping in WL6 - continued : jms queues and topics

How can one use "generic" (i.e. "java:comp/env/jms/myQueue") names in client
code for jms queues and topics,
since neither application-client.xml nor WL's myjarname.runtime.xml
have elements for them ?
I mean, jms managed objects are not env-entries (application-client.dtd
specifies that only primitive wrapper types can be valid env-entry-value)
nor resources (which I understand are all connection factories, for jdbc,
jms or mail ...).
In my ejb-jar.xml I use the resource-env-ref element :
<resource-env-ref>
<resource-env-ref-name>jms/CreationErrorQueue</resource-env-ref-name>
<resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
which can be mapped in weblogic-ejb-jar.xml
<resource-env-description>
<res-env-ref-name>jms/CreationErrorQueue</res-env-ref-name>
<jndi-name>jms.aregon.CreationErrorQueue</jndi-name>
</resource-env-description>
but I don't know how to map the jndi of such objects in a client
application.
Edo

Hi Sachin --
In the 10.1.3.1 release, a set of new commands have been added to admin_client.jar to support the command line creation of JMS resources:
-addJMSConnectionFactory -domain <domain> -jndiLocation <jndiLocation> [options]
-removeJMSConnectionFactory -jndiLocation <jndiLocation>
-getJMSConnectionFactories
-addDestination -domain <domain> -name <name> -jndiLocation <jndiLocation> [options]
-removeDestination -name <name> [options]
-getDestinations
You can read about it in the doc:
http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28950/adminclient.htm#CHDDFJJA
cheers
-steve-

Similar Messages

  • How to create JMS Queues and Topics - OAS 10.1.3?

    Hi,
    Is there a way to create JMS Queues and Topics via the command line for OAS 10.1.3, say through admin-client.jar ?
    I have read the "Managing Adminitered Objects" chapter from the "Oracle Containers for J2EE Resource Adapter" book and could not find the information I am looking for.
    Thanks.
    -Sachin

    Hi Sachin --
    In the 10.1.3.1 release, a set of new commands have been added to admin_client.jar to support the command line creation of JMS resources:
    -addJMSConnectionFactory -domain <domain> -jndiLocation <jndiLocation> [options]
    -removeJMSConnectionFactory -jndiLocation <jndiLocation>
    -getJMSConnectionFactories
    -addDestination -domain <domain> -name <name> -jndiLocation <jndiLocation> [options]
    -removeDestination -name <name> [options]
    -getDestinations
    You can read about it in the doc:
    http://download-west.oracle.com/docs/cd/B31017_01/web.1013/b28950/adminclient.htm#CHDDFJJA
    cheers
    -steve-

  • Get jms queue and topic names from JNDI

    Hello all,
    How do I get all possible queue and Topic names from JNDI (in my app) so I can store them in a HashMap?
    Thanks

    I'm guessing you know where in the JNDI you put your queue and topic names. Then you can do:
    context.listBindings("myJNDIContext");
    and go through the NamingEnumeration that this returns.

  • J2EE client mapping in WL6

    I've read the not-so-good dox about running a J2EE client in WL6:
    - make a jar packaged with the standard META-INF/application-client.xml
    - put an xml called <jarname>.runtime.xml in the dir with the client jar
    (for WL6 specific jndi mappings)
    - run the jar with weblogic.j2eeclient.Main [jar] urlthis is cumbersome in development. my J2EE client is mostly made of junit
    testcases that call entities and session beans. There are dozens of "Main"
    classes in the jar, that I might want to run individually!
    I would like to run the testcases directly using the compiled classes
    directory - but then the jndi mappings between the standard, logical names
    like "java:comp/env/ejb/mySessionHome" and the WL-specific names like
    "ejb.myapp.mySessionHome" fail.
    actually, if I run the client using in code the actual WL6 jndi names, no
    deployment info is necessary, but I want to use in code only the logical
    names.
    so, my question is : how do I run an unpackaged client that picks up the
    jndi mappings specified in the .runtime.xml ??
    Edo
    PS - I basically want to replicate on the client-side the way I work on the
    server-side : I use WL6 dynamic deployment of an unpackaged ear : no
    explicit calls to jar and ejbc - which helps my code-complie-test cycle a
    lot !

    Hi Sandy,
    If I understand you correctly, then you are asking how to make
    a stand-alone java client, right? According to the J2EE spec, a
    stand-alone java client also needs to be deployed to a container.
    A long time ago (before OC4J, when there was only OrionServer)
    I struggled for about a week before finally figuring out how to
    do this.
    However, I then discovered that, with OrionServer (and therefore
    also with OC4J), your stand-alone java client does not have
    to be deployed to a container and can be launched from the command
    line with the "java" command.
    If you do want to deploy your java client, then the only way
    I know to launch it is by using the "applicationlauncher.jar"
    file. This file was part of the first OC4J (version 1.0.2.2).
    It disappeared in the next version (9.0.2) and now has reappeared
    in the latest version (9.0.3) -- go figure! Like I said, by the
    time I started using OC4J, I was only using non-deployed clients,
    so I had no need for "applicationlauncher.jar", so the fact it
    was missing from version 9.0.2 didn't affect me.
    In any case, I recall information on how to use the "applicationlauncher.jar"
    file on the following web sites:
    http://www.orionserver.com
    http://www.orionsupport.com
    http://www.atlassian.com
    http://www.elephantwalker.com
    I also recall answering similar questions several times previously
    on this forum, so a search of the forum archives may also help.
    I hope I have correctly interpreted your question and given you
    a helpful answer.
    Good Luck,
    Avi.

  • I want to use ODI to read XML messages from JMS queue and then process it..

    I want to use oracle ODI (Oracle Data Integrator) to read XML messages from JMS queue and then process it.. i also want to process and validate the data in it....
    Could anyone please tell me the steps to achieve the same. I tried some ways which i got on OTN, but not able to implement it exactly...
    As i m very new to ODI, it will be great if you provide detailed steps..
    Thanks in advance for your help....

    Hi,
    Were you able to do it? We are facing this same issue now and, despite the fact the docs say otherwise, it does not seem to be a trivial task.
    TIA,
    Tedi

  • Sending message to a JMS queue and making DB update through a single container managed transaction

    Can we use container managed transactions to send message to JMS queue and make DB updates in a sigle transaction. If yes then do we need 2pC license. I am using weblogic 6.0 SP2 and my database driver do not supports XA

    If your JMS provider is XA compliant, you can.
    If you are using WebLogic 6.0 JMS, it supports 2PC.
    The JDBC resource that does not support XA can participate in the global transaction
    creating a TXDataSource and setting "enable two-phase commit"=true in the Configuration
    panel.
    About the JMSConnectionFactory, on the console, in WebLogic 6.0, in the "Transaction"
    tab folder, set "User Transactions Enabled"=true.
    In your code, use non-transacted sessions.
    For 2pc protocol, you need a license or you'll get an exception.
    Sergi
    Manoj Bansal <[email protected]> wrote:
    Can we use container managed transactions to send message to JMS queue and
    make DB updates in a sigle transaction. If yes then do we need 2pC license.
    I am using weblogic 6.0 SP2 and my database driver do not supports XA

  • Recovering connections to queues and topics if a provided become unavailabl

    Hello! I've got a service that creates a thread to a given JMS queue or topic. When the service is started, it is verified that the queue or topic is reachable. However, over the course of time, the JMS provider could be restarted bringing it offline temporarily. When it goes offline and later comes back on line, the thread that was previously connected is not aware that the provider is back on line and does not pick up any messages in the given topic. Does anyone know what the proper way to handle this is in JMS land? I've been looking into durable subscribers, but I'm unsure if this will do for me what I want. I'm trying to avoid have to constantly poll for the queue/topic status or force the user to restart the service periodically. Thanks in advance!

    hi.
    depending on your JMS provider - you may use the Connection's method setExceptionListener().
    keep in mind, however, that not all providers are fail-safe in the case of a provider's shutdown-startup sequence or network failures. you might want to experiment a little with the provider you installed and see what happens in various situations.
    Nimo.

  • Distributed JMS Queues and Port Information

    Hello,
              I am a reasonably inexperience WebLogic user, so forgive my ignorance.
              We are setting up a distributed JMS queue as a destination for messages being sent from our EAI server. The distribution will be across 2 servers in our QA environment and 3 servers in our production. We are using WebLogic Server 8.1.3 on an Windows 2003 environment.
              The people in our EAI environment need a port number on for the Queue in order to forward their messages to us. My question's are:
              1) Is the listen port for the Distributed Queue the same as the listen port for the Admin Server?
              2) If it is not, does it correspond to the listen port for the individual queues (which is the same between our environments)?
              3) If there is a third port in play, how does this get configured and where do I retreive this information?
              I appreciate any answers people are willing to give me on the issue.
              Thank you,
              Steven Enk
              Harley-Davidson Motor Company

    Hi Steven,
              WebLogic JMS shares the same WebLogic port as other WebLogic services, regardless of whether or not the destinations are distributed.
              One way to determine which ports are configured for a particular WebLogic server is to look at the log for that server.
              Ports are usually configured to support multiple protocols, and typically, one uses the "t3" protocol for URLs (its the highest performer), but there are other options (such as "http" for tunneling).
              You can configure additional ports (beyond the "default" port(s)) using the "channel" feature - i think you can find channels under the "WebLogic server" tabs on the console.
              For a server or client to establish communication with a remote cluster, one need only specify a URL for any one of the server's within the remote cluster. J2EE JNDI name location transparancy and WebLogic RMI load balancing will usually take care of the rest, although some customers setup DNS to help with load balancing (by for example, configuing their DNS "round-robin" addresses).
              Best practice is for the administrative server to be restricted to administrative purposes only. This means the admin server typically (A) doesn't host JMS (or any other services or any applications) and (B) is not a member of a cluster. So typically you won't be able to access JMS using an admin server's URL.
              Tom

  • Reading Opaque data from jms queue  and decoded  in java embedding

    Hi ,
    Objective:Fetch text message from queue and print it from java embedding in BPEL
    I am fetching text message from a jms queue using JMS adapter in BPEL.Then converting the opaque data(Base64 binary)to string using java embedding.My build got successful but I am getting runtime error at the time of deployment.
    I have added fabric-runtime.jar file into SCA-INF\lib folder as well as project library directory.
    <extensionActivity>
    <bpelx:exec name="Java_Embedding1" version="1.5" language="java">
    <bpelx:exec import="java.io.*"/>
    <bpelx:exec import="oracle.soa.common.util.Base64Decoder"/>
    <![CDATA[//Write your java code below e.g.        
         System.out.println("Hello, World");       
    //   String input = ((Element)getVariableData("Receive1_Consume_Message_InputVariable")).getTextContent();              
      // String inputName = (String)getVariableData("input");     
      String input = (String)getVariableData("Receive1_Consume_Message_InputVariable");            
    //Receive1_Consume_Message_InputVariable.opaque          
          System.out.println("input:"+input);          
          addAuditTrailEntry(input);           
          Base64Decoder Decoder = new Base64Decoder();             
         try {            
          String decoded = Base64Decoder.decode(input);            
          setVariableData("Variable_opaque_decoded",decoded);            
          addAuditTrailEntry(decoded);           
    catch(UnsupportedEncodingException uee)
    uee.printStackTrace();
    }]]>
    </bpelx:exec>
    </extensionActivity>
    Error:
    Error deploying archive sca_JMSToDBInsert_rev1.0.jar to partition "default" on server AdminServer [http://localhost:7001]
    HTTP error code returned [500]
    Error message from server:
    There was an error deploying the composite on AdminServer: Error occurred during deployment of component: BPELProcess1 to service engine: implementation.bpel, for composite: JMSToDBInsert: ORABPEL-05250
    Error deploying BPEL suitcase.
    error while attempting to deploy the BPEL component file "C:\Oracle\Middleware\user_projects\domains\soa_domain\servers\AdminServer\dc\soa_0fb06e23-bac3-4753-aae9-0fc4b54b4dd1"; the exception reported is: java.lang.RuntimeException: failed to compile execlets of BPELProcess1
    This error contained an exception thrown by the underlying deployment module.
    Verify the exception trace in the log (with logging level set to debug mode).
    Check server log for more details.
    Error deploying archive sca_JMSToDBInsert_rev1.0.jar to partition "default" on server AdminServer [http://localhost:7001]
    #### Deployment incomplete. ####
    Error deploying archive file:/C:/SOA Suite/SOA_POC/Client2JMSapps/Client2JMSapps/JMSToDBInsert/deploy/sca_JMSToDBInsert_rev1.0.jar
    (oracle.tip.tools.ide.fabric.deploy.common.SOARemoteDeployer)
    Could you guys please help me regarding this?
    Thanks & Regards,
    Souvik
    Edited by: Souvik Pal on Apr 16, 2012 9:40 PM

    You probably want to try the SOA Suite forum for OSB questions.
    SOA Suite
    There is an excellent book also:
    http://jeffdavies.org/
    The documentation goes over the fundamentals, but the book will be better for step by step examples.

  • Distribute JMS Queues and ConnectionFactories

    Hi,
              Iam using Queues with filestore as persistence type. The Queues ,Conextion Factories are configured on Server A and Server B . Both are on different IP's. The MDB's are deployed on both the servers.
              When a message is send from Server A to Server B the MDB listening on server B is not pickingup that message.
              I configured the queues as normal queues. Is there any attribute needs to set for the Queues or connectionfactories to share the session between servers. I have the same JNDI names for the Queues and ConnectionFactories.
              Highly appriciate if anyone can tell me the solution.
              Regards
              Manikyala
              

    Hi,
              I have lots of questions:
              Where is sent message going? Can you check statistics to
              confirm that the message was successfully sent to the
              desired queue?
              Is MDB B may not be deploying and then connecting to JMS
              successfully? (A successful deployment doesn't mean
              that the MDB is connected.) Check your server logs for
              Warning/Error messages.
              Are you using the distributed destination feature?
              Are the two servers in the same cluster?
              Did you make sure that:
              All JMS servers, WL servers, and WL JMS stores
              are named differently?
              Tom
              Manikyala wrote:
              > Hi,
              >
              > Iam using Queues with filestore as persistence type. The Queues ,Conextion Factories are configured on Server A and Server B . Both are on different IP's. The MDB's are deployed on both the servers.
              >
              > When a message is send from Server A to Server B the MDB listening on server B is not pickingup that message.
              >
              > I configured the queues as normal queues. Is there any attribute needs to set for the Queues or connectionfactories to share the session between servers. I have the same JNDI names for the Queues and ConnectionFactories.
              >
              > Highly appriciate if anyone can tell me the solution.
              >
              > Regards
              >
              > Manikyala
              

  • Reg:JMS Queue related topic...

    Hai all,
    Can any one send me the link for JMS queuename,queue manager name,important parameters for JMS channel configurations etc..
    I know you will reply that search in SDN before you post it.But I searched all the previous forums but I am not able to get the proper docs related to it.
    If you dont mine can you please once again sent me link that will cover all th etopics that i need
    Thanks,

    Did you check these links?
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End?blog=/pub/wlg/5756
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End?blog=/pub/wlg/5590
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/604e2b64-e689-2910-64b3-ffd650f83756;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End
    http://help.sap.com/saphelp_nwpi71/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    Regards,
    Ravi

  • Consumer number for a JMS queue continues to grow

              I am using WLS 7.0 SP2. I have a JMS Queue and number of consumers continues to
              grow.
              Is there any way to stop it from growing? If not, should I be concerned about
              the memory usage by those consumers?
              Thanks.
              Rick
              

              Tom,
              You are right on JMS resources. We found that developer didn't close JMS session
              and conneciton which caused the memory leak. Now it has being running more than
              10 hours without crashing.
              Thanks.
              Rick
              Tom Barnes <[email protected]> wrote:
              >
              >Rick Chang wrote:
              >> I am using WLS 7.0 SP2. I have a JMS Queue and number of consumers
              >continues to
              >> grow.
              >>
              >> Is there any way to stop it from growing?
              >
              >No.
              >
              >> If not, should I be concerned about
              >> the memory usage by those consumers?
              >
              >Before jumping to conclusions though, make sure
              >that you are looking at the right statistic, there
              >are three for consumer count:
              > current -- active consumer count
              > high -- highest active consumer count
              > total -- total consumers ever created
              > (ever increasing by definition)
              >
              >If you are looking at "current"
              >the statistics point to a likely memory/resource leak.
              >Perhaps some part of your application is failing to close
              >its JMS resources when it is finished with them.
              >
              >>
              >> Thanks.
              >>
              >> Rick
              >
              

  • Use ODI with JMS Queue

    I'm new user in ODI and also JMS. I successfuly use odi to integrate data from two oracle database applications. I'm trying to integrate applications using JMS Queues (or Topics) and I failed to create odi "data server" for this technology. Can someone help me to do this or give me a sample to follow it?
    thanks.

    Hi there,
    You can actually create 2 different types of connections to a JMS Queue or Topic. Flat or XML. The simplest to start with is flat. This will basically cause ODI to view the contents of the queue as simple flat file data. Note, this is a bit advanced use of ODI, so I would perhaps go through connecting to an RDBMS first before walking through this. It will make more sense.
    To set this up, you will need to:
    1. Copy the necessary client files from OC4J, place them in the <ODI_HOME>/oracledi/drivers directory and restart ODI. The files you need are:
    - <OC4J_HOME>/j2ee/home/oc4jclient.jar
    - <OC4J_HOME>/j2ee/home/lib/javax77.jar
    - <OC4J_HOME>/j2ee/home/lib/jta.jar
    Sop copy those files and restart ODI.
    2. Create a physical connection (Topology Application/Physical Architecture/Technologies -> right click JMS Queues and select "Insert Data Server")
    3. In the Description tab, simpl fill in the Name field.
    4. In the JNDI tab , fille in the following:
    - JNDI Authentication - Simple
    - JNDI User: application user - this is the equivalent of javax.naming.Context.SECURITY_PRINCIPAL
    - Password: application password - this is the equivalent of javax.naming.Context.SECURITY_CREDENTIALS
    - JNDI Driver: This is the equivalent of javax.naming.Context.INITIAL_CONTEXT_FACTORY, so enter com.evermind.server.rmi.RMIInitialContextFactory
    - JNDI Url: This is the equivalent of javax.naming.Context.PROVIDER_URL, so put in ormi://<hostname>[:<port>]/<application>. For instance, with the basic OC4J install, I put in ormi://localhost/default.
    - JNDI Resource: This is the JNDI lookup key for your Queue Connection factory. For example, for the default OC4J installation, I put in jms/QueueConnectionFactory
    5. Click the Test button and click OK in the window that pops up. You should get a message box saying that your connection was successful.
    6. Click Apply or OK and a new window will pop up. In this window, go to the Context tab and click the Add button and in the row that appears, click on the right most field (it says <Undefined> and replace <undefined> with a logical name for your connection. Hit Enter and click OK)
    7. You've now connected to the Queue, to create the Queue object in ODI, go to the Designer window, go to models and create a new model.
    8. Set the name to whatever makes sense to you. Set the technology to JMS Queue and the Logical Schema to the logical connection name you created in step 6. In the Reverse tab, select Global from the Context dropdown menu.
    9. Click OK. You now have a container for any Queues that are in this connection.
    10. To point to the queue, right click your new model and select Insert Datastore.
    11. In the new window, name your datastore whatever you'd like. Set the resource name to the JNDI resource name for the queue (for example, with the default OC4J configuration, you could set this to jms/demoQueue.
    12. In the Files tab, set the File Format to fixed, and set the record separator to Windows or Unix (it doesn't really matter which one you pick)
    13. In the Columns tab, click the add button to add a column. Name the column something like DATA and set is to a String of size 1000.
    14. Click OK. You'll now be able to right click this new datastore and view data, granted in a very simple format. You can create a more complex flat file structure if you' like but this gives you a quick and easy to view the contents of the queue.
    I'd suggest trying to connect this way, post if you were successful and I will then post how to connect to an XML structured queue (it's a little teenie bit different)

  • OC4J 9.0.4: Problem receiving message from JMS queue

    I've created an application which puts XML files in a JMS queue and try to get it out again. The enqueing (sending) is no problem, but when I dequeue from the same queue I receive nothing and if I don't specify a wait time the programs hangs.
    If I create a QueueBrowser I can see there are messages in the queue.
    Can someone tell me what I do wrong?
    Here is the code of my dequeue action:
    public String dequeue(int qName) throws RbsSysException
            final String method = "dequeue(int qName)";
            _log.debug(method);
            QueueConnection queueConnection = null;
            try
                queueConnection = _queueConnectionFactory.createQueueConnection();
                QueueSession queueSession = queueConnection.createQueueSession(false,
                        Session.AUTO_ACKNOWLEDGE);
                QueueReceiver queueRcv = queueSession.createReceiver(getQueue(qName));
                _log.debug("queue = "+ queueRcv.getQueue().getQueueName());
                // Due to bug 3376983 in OC4J We cannot use TextMessage if it exceeds
                // 64 kb. Therefore use ObjectMessage.
                Message msg = queueRcv.receiveNoWait();
                _log.debug("msg = " + msg);
                ObjectMessage objMsg = (ObjectMessage)msg;
                //ObjectMessage objMsg = (ObjectMessage) queueRcv.receiveNoWait();
                _log.debug("objMsg = " + objMsg);
                if (objMsg != null)
                    return (String) objMsg.getObject();
                else
                    return null;
            catch (JMSException je)
                throw new RbsSysException(je);
            finally
                if (queueConnection != null)
                    try
                        queueConnection.close();
                    catch (Exception any)
                        _log.error("Error while closing QueueConnection: ", any);
        }

    Did you implement javax.jms.MessageListener and the method onMessage(Message)?
    If you use onMessage() as wel as receive (or receiveNoWait() or receive(long)), the onMessage() can be called, while the main thread is blocking on a synchronous receive, so make sure you use only one of the two methods: onMessage() or receive.
    Receive() blocks your thread until a message is published. So your program 'hangs' by design. Usually this is used when your program is waiting for a particular message. Otherwise use onMessage().
    ReceiveNoWait() checks if something is in the queue at that very moment, so if nothing is there (yet), the main thread continues.
    Hope this helps,
    Lonneke

  • Populating Database records to WLS JMS queue

    Hi All,
    Please suggest which is the performance effective approach in populating WLS JMS queue from the database tables?
    As I have to produce millions of records from the DB into the JMS queue and assuming using DB adapter and retreiving bulky data is a long running process.
    Please suggest whether I can write a pl/sql stored proc and populate the WLS JMS queue? or is there any other most optimistic approach to transfer data from db into WLS JMS queue?
    Thanks,
    Sudha

    Thanks Eric for the quick reply. Also, going through the other forum:
    Re: Publish message from Oracle database PL/SQL to a remote WLS JMS queue
    Just want to know which one would be performance effective one in the below whether using Java stored Procedures or populating AQ and WLS Messagin bridge?
    1) Java Stored Procedure can use JMS APIs to publish messages to WLS JMS destinations. JMS standard API jar file and WLS JMS client jars that you use need to be loaded into database.
    2) From PL/SQL, you can publish message to AQ using AQ PL/SQL APIs, then configure WLS Messaging Bridge to forward messages from AQ to WLS JMS.

Maybe you are looking for

  • How I can back up my data from macbook pro that its hard drive seems to die soon?

         I need your help guys from the whole world. I am now in Erbil (North Iraq) and there is no apple authorized resellers or anyone who can fix macs, they can destroy them as they try to repair it ( this is what happened      to me recently with My

  • ACE SSL terminate not working ... please help

    Hello, I configured cisco ace 4710 with ssl-proxy and it is not working, but http://10.1.40.2 and http://10.1.40.3 is OK.  When i put https://10.1.41.20 the output is: "There is a problem with this website's security certificate", so i click in "Cont

  • Video Call with more than 2 people?

    Hi ! I've seen that video calls for groups are currently not working on Skype for Android : We can join a video call between 2 or more people but only with the audio : we can hear everything, but we can't see anything (or being seen by the other peop

  • Problem for create report by sql query under Protal!

    I'm trying create report by sql query method, however it came out the error: ORA-00918: column ambiguously defined (WWV-11230) Failed to parse as SENTRYDB - select distinct t1.firstnames, t1.lastname, t4.PERSONGROUP, to_char( t1.dateofbirth, 'DD-MM-Y

  • Character moving

    hi guys i have  3 classes in the library (external classes) and 1 document class called Main in HERO class character should move but it not here more details there is document class called (Main) and then class in lib called (MAINMAP1) inside this cl