Multithreading in Oracle

Hi All,
I am working on Oracle 11g. I have to implement multithreading/asynchronous processing in one of my applications.
There is a table, tab1 which contains two columns - ID and SQL. The SQL column is of CLOB datatype and contains a Dynamic SQL statement. This table has around 100 records and can contain upto 1000 (not more than that). The intent of these Dynamic SQLs is to update one of the tables and the dynamic sql is quite big (creates temp tables, business logic application, data is merged and finally updates are done, again based on rules). As of now, the application was executing these queries in sequential manner, through a simple loop.
I want to explore how can I introduce multithreading here, so that I can run the sqls in multiple threads. I know, I can use DBMS_SCHEDULER, but I am struggling at - how to break those 100 records into say 10 sessions at a time? I can track the IDs which have been processed by updating an update_date column in the above mentioned table.
Any suggestion will be highly appreciated which can put me in right direction.
If the problem statement is not clear, do let me know.

Hi,
I have never used before DBMS_SCHEDULER but the system parameter job_queue_processes should define the maximum number of jobs running at the same time. If set to 0 Oracle will determine it.
I have prepared a sample dummy code that is creating 50 jobs and starting them.
The parameter job_queue_processes is set to 10.
From the log table mylog you will see only 10 jobs are executing at the same time.
-- Table to store my SQL jobs
CREATE TABLE myjobs
   id             NUMBER NOT NULL
, SQLCODE        CLOB
-- Table to store log of my jobs
CREATE TABLE mylog
   start_time     TIMESTAMP NOT NULL
, end_time       TIMESTAMP NOT NULL
, id             NUMBER NOT NULL
-- Creating entries into myjobs table
BEGIN
   FOR i IN 1 .. 50
   LOOP
      INSERT INTO myjobs
           VALUES (
                     i
DECLARE
   v_starttime  TIMESTAMP;
   v_endtime    TIMESTAMP;
BEGIN
   v_starttime := SYSTIMESTAMP;
   dbms_lock.sleep(10);
   v_endtime := SYSTIMESTAMP;  
   INSERT INTO mylog VALUES (v_starttime, v_endtime,' || i || ');
   COMMIT;
END;');
   END LOOP;
   COMMIT;
END;
-- This will set maximum number of jobs at the same time
ALTER SYSTEM SET job_queue_processes=10;
-- Submitting the jobs
BEGIN
   FOR c1 IN (  SELECT *
                  FROM myjobs
              ORDER BY id)
   LOOP
      -- Delete the job if it is already existing with the same name
      BEGIN
         DBMS_SCHEDULER.drop_job ('test_sched_job_' || c1.id);
      EXCEPTION
         WHEN OTHERS
         THEN
            NULL;
      END;
      DBMS_SCHEDULER.create_job ( job_name => 'test_sched_job_' || c1.id
                                , job_type => 'PLSQL_BLOCK'
                                , job_action => c1.SQLCODE, enabled => FALSE);
      DBMS_SCHEDULER.run_job (job_name => 'test_sched_job_' || c1.id, use_current_session => FALSE);
   END LOOP;
END;
-- After all jobs have been completed
-- this will show the start time of jobs
-- 10 jobs at the same time have started as per setting
  SELECT *
    FROM myjobs
ORDER BY starttime, id;
/* Cleanup */
DROP TABLE myjobs;
DROP TABLE mylog;
{code}
Regards.
Al                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • How to do Multithreading in Oracle PlSql using a Single Session

    Hi All,
    I have a complex but interesting requirement.
    1) I have a table with 90k rows.
    2) My PlSql Package picks up all the 90k rows one by one, does some processing/transformation on it
    3) if the row satisfies some business rules, then it gets inserted into an application table. If the row is not eligible, then it inserts the row into a Error table.
    4) After processing all the 90k records, If my Error Table Count reaches 10% of the input count (90k), then all inserts (i.e. both application table inserts and
    error table inserts) must be rolled back.
    5) Right now, we are achieving this logic in a single session but there are far many performance issues, because processing has to go through row by row.
    Is it possible to implement the above logic as "multi threading within PlSql" whereby i can run Step 2 in 10 parallel slaves and if the total error count of all the 10 slaves exceeds 10% of the input data, then there should be a rollback for all 10 slaves.
    +A sample testcase is given below. Issue is: rollback statement in p1 is not taking any effect (because plsql spawns sessions to execute p2 which autocommits itself on graceful exit). But is there any other way by which i can make the rollback to be effective+
    create table t1 (a number);
    create table j1(b number);
    create or replace procedure p1
    as
    l_cnt number;
    i number;
    l_job number;
    begin
         for i in 1 .. 5 loop
            dbms_job.submit( l_job, 'p2('||i||');' );       
        end loop;
        commit;
        loop
            dbms_lock.sleep(30);
            select count(*) into l_cnt from j1;
            exit when (l_cnt = 5);
        end loop;
       rollback;
    end;
    create or replace procedure p2(i number)
    as
    begin
    insert into t1 values(i);
    insert into j1 values(1);
    end;
    /

    Basically your current 'algorithm' can be described as 'slow-by-slow processing' (co Tom Kyte)
    Relational databases are about sets not about records.
    Consequently your approach must be qualified as evil.
    Instead of fixing the problem (and getting rid of slow-by-slow processing), you propose to add even more evil by adding multi-threading to the mix.
    The issue you describe is not an issue at all, it is just making clear you are heading for disaster.
    An approach that works quite nicely is
    - add an extra status column to the table to be processed.
    - UPDATE the status column of all records that do not qualify. By UPDATE I mean the UPDATE statement, not record by record processing
    - (BULK)-INSERT the remaining records, for which the flag is NULL.
    The simple guidelines for application development are:
    Only do it in PL/SQL when you can't do it in straight SQL
    Only do it in Java when you can't do it in PL/SQL
    Only do it in 3GL when you can't do it in Java.
    Your 'strategy' is doomed to fail.
    Get rid of it.
    Before it is too late, and your heart is pumping like mad, because your problems are increasing, and increasing, and increasing, and you have to work 7 x 24 to deal with 'performance problems'
    You have already demonstrated your approach doesn't work.
    Don't try to make it worse.
    Sybrand Bakker
    Senior Oracle DBA
    Experts: those who do read documentation

  • Multithreading in  oracle PLSQL

    Hi
    I am having 100000 records in my database,
    Normally i fetch 1000 records from 100000 in bulk and do the process, after completion of first batch the it took second set of 1000 records from 100000 in bulk and do the process.
    Say in the 1st batch there is a transaction for the A/C no : 9856423456
    after completion of batch 1
    2nd batch is in process here some transaction for the same A/c : 9856423456
    so complete this batch
    and batch process is continuous till completion of whole record.
    there is a dependences between 1st batch and 2nd or some other batch
    say in the 1st batch transaction for the A/C no : 9856423456 after completion of this transaction balance available for the A/C no : 9856423456 2,00,000 rupees
    in the 2nd or some other batch, some transaction may come for same A/c, so after completion of the first batch only we know what actual balance is.
    Now i want implement multi-threading :
    how can i implement
    Thanks

    Balajiraam wrote:
    Now i want implement multi-threading : how can i implementThere 2 basic options to parallel processing using PL/SQL.
    You can use the Parallel Query (PQ) feature of Oracle. This parallelises SQLs by breaking large scans into a number of smaller scans and running these in parallel. You can also run PL/SQL via PQ by defining a parallel enabled PL/SQL pipeline table function.
    This second method is rolling your own parallel processing in PL/SQL. With 11g you can use DBMS_PARALLEL_EXECUTE. You can use DBMS_JOB to run parallel processes. You can use message queues and database pipes (or even plain SQL tables) for IPC. You can use DBMS_LOCK for implementing semaphores and mutexes.
    It all depends on your requirements ito multi-threading/parallel processing in PL/SQL.

  • TMON PROCESS

    Dear Sir,
    In oracle architecture poster there new process called TMON. Where can I get the information about this process, in which document it is available.
    Thanks in advance..
    Anil Kumar

    Hi,
    Please check below link:
    Surachart Opun's Blog: Learned a little bit about Multithreading
    12c | Oracle Scratchpad
    Oracle Database 12c: Multithreaded Execution (or how make processes decrease) | DBA survival BLOG
    http://www.oracle.com/technetwork/tutorials/posterfiles-1974103.pdf
    ORACLE-BASE - Multithreaded Model using THREADED_EXECUTION in Oracle Database 12c Release 1 (12.1)
    Thank you

  • WLS10, Oracle 10g, EJB3, @GeneratedValue, PK collision multithreaded

    Hi forum readers,
    I have a little problem with the primary key generation in a multithreaded environment.
    I have the following:
    - Oracle 10g Express Database using the BEA thin non-xa driver without distributed transactions
    - EntityBean:
    @Entity
    @Table (name = "t_log")
    public class LogEntity implements Serializable {
         @Id
         @GeneratedValue(strategy=GenerationType.AUTO)
         private long id;
         @Lob
         private String message;
         public LogEntity(String message) {
              this.message = message;
         public LogEntity() {
         public String getMessage() {
              return message;
    Stateless Session Bean that just creates LogEntities:
    @Stateless
    @TransactionAttribute (TransactionAttributeType.REQUIRED)
    public class LogAccessBean implements LogAccessLocal{
         @PersistenceContext
         EntityManager em;
         public void log(int type, String message) {
              LogEntity log = new LogEntity(message);
              em.persist(log);
    The LogAccessLocalInterface:
    @Local
    public interface LogAccessLocal {
         public void log(String message);
    Webservice calling the StatelessSessionBean:
    @WebService (endpointInterface = "webservice.TestService")
    @Stateless
    public class TestEndpoint implements TestService {
         @EJB
         private LogAccessLocal log;
         public void log(String client) {
              log.log("This is a testmessage logged on: " + System.currentTimeMillis() + ", client: " + client);
    persistence.xml:
    --- snip ---
    <property name="kodo.jdbc.DBDictionary" value="oracle" />
    <property name="kodo.Multithreaded" value="true" />
    --- snip ---Everything works ok when the webservice is called in a single threaded environment, but as soon as I start using the WS by many different threads the server starts to throw exceptions as hell:
    (I use a perl script to call the webservice, and a shell script that forks multiple calls to the perl script.)
    ####<Sep 27, 2007 4:32:49 PM GMT+01:00> <Error> <EJB> <serverhost> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1190907169990> <BEA-010026> <Exception occurred during commit of transaction Name=[EJB webservice.TestEndpoint.log(java.lang.String)],Xid=BEA1-5367F15A15000E47A569(19526372),Status=Rolled back. [Reason=Unknown],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=30,SCInfo[axs_jrockit+AdminServer]=(state=rolledback),properties=({weblogic.transaction.name=[EJB webservice.TestEndpoint.log(java.lang.String)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=AdminServer+192.168.1.1:7001+axs_jrockit+t3+admin+7001+, XAResources={},NonXAResources={})],CoordinatorURL=AdminServer+192.168.1.1:7001+axs_jrockit+t3+admin+7001+): weblogic.transaction.RollbackException: Unknown reason
         at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1818)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:333)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:227)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:588)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:421)
         at weblogic.ejb.container.internal.BaseWSLocalObject.postInvokeTxRetry(BaseWSLocalObject.java:196)
         at webservice.TestEndpoint_qthlxq_WSOImpl.__WL_log_WS(TestEndpoint_qthlxq_WSOImpl.java:86)
         at jrockit.reflect.CompiledMethodInvoker.invoke0(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
         at jrockit.reflect.CompiledMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
         at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
         at weblogic.wsee.server.ejb.WsEjb.invoke(WsEjb.java:50)
         at weblogic.wsee.jaxws.WLSEjbInvoker.invoke(WLSEjbInvoker.java:135)
         at weblogic.wsee.jaxws.WLSInvoker.invoke(WLSInvoker.java:42)
         at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:247)
         at com.sun.xml.ws.server.sei.SEIInvokerPipe.process(SEIInvokerPipe.java:97)
         at weblogic.wsee.jaxws.MonitoringPipe.process(MonitoringPipe.java:98)
         at com.sun.xml.ws.protocol.soap.ServerMUPipe.process(ServerMUPipe.java:62)
         at com.sun.xml.ws.server.WSEndpointImpl$1.process(WSEndpointImpl.java:139)
         at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:153)
         at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:235)
         at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:97)
         at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:36)
         at weblogic.wsee.jaxws.JAXWSServlet.doPost(JAXWSServlet.java:218)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3370)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(Unknown Source)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2117)
    .>
    ####<Sep 27, 2007 4:32:49 PM GMT+01:00> <Warning> <JTA> <serverhost> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1190907169990> <BEA-110401> <Ignoring error in afterCompletion. Object=weblogic.deployment.BasePersistenceContextProxyImpl$PersistenceContextCloser@129f553, Exception=<4|true|0.9.7> org.apache.openjpa.persistence.InvalidStateException: The context has been closed. The stack trace at which the context was closed is available if Runtime=TRACE logging is enabled.
    <4|true|0.9.7> org.apache.openjpa.persistence.InvalidStateException: The context has been closed. The stack trace at which the context was closed is available if Runtime=TRACE logging is enabled.
         at org.apache.openjpa.kernel.BrokerImpl.assertOpen(BrokerImpl.java:4290)
         at org.apache.openjpa.kernel.BrokerImpl.beginOperation(BrokerImpl.java:1726)
         at org.apache.openjpa.kernel.BrokerImpl.close(BrokerImpl.java:4012)
         at org.apache.openjpa.kernel.DelegatingBroker.close(DelegatingBroker.java:1284)
         at org.apache.openjpa.persistence.EntityManagerImpl.close(EntityManagerImpl.java:999)
         at weblogic.deployment.TransactionalEntityManagerProxyImpl.close(TransactionalEntityManagerProxyImpl.java:94)
         at weblogic.deployment.BasePersistenceContextProxyImpl$PersistenceContextCloser.afterCompletion(BasePersistenceContextProxyImpl.java:184)
         at weblogic.transaction.internal.ServerSCInfo$CallAfterCompletionsAction.run(ServerSCInfo.java:1595)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedExceptionAction;)Ljava.lang.Object;(Unknown Source)
         at weblogic.transaction.internal.ServerSCInfo.doAfterCompletion(ServerSCInfo.java:1028)
         at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:996)
         at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:2946)
         at weblogic.transaction.internal.ServerTransactionImpl.afterRolledBackStateHousekeeping(ServerTransactionImpl.java:2827)
         at weblogic.transaction.internal.ServerTransactionImpl.setRolledBack(ServerTransactionImpl.java:2803)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRetryRollback(ServerTransactionImpl.java:3043)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2793)
         at weblogic.transaction.internal.ServerTransactionImpl.internalRollback(ServerTransactionImpl.java:397)
         at weblogic.transaction.internal.ServerTransactionImpl.rollback(ServerTransactionImpl.java:375)
         at weblogic.servlet.internal.ServletResponseImpl.abortActiveTx(ServletResponseImpl.java:1424)
         at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1390)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1368)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
    >
    I tried with RUNTIME=TRACE logging, but the only thing I see is that AutoGenerated values are fetched and that the sequence (it's really a sequence table) is updated, that all.
    The really strange thing is that all data that should be in the database is there, but the server just prints exceptions into the log. Our customers will think that something is wrong when the log is full of exceptions, so I tried to shut up KODO by setting kodo.Log = none, unfortunately this did not help at all (well the trace stuff is gone, but not the exceptions)
    I tried the exact same code using different application server and database combinations (even different GenerationTypes) and here are my results:
    JBoss:   PSQL  MYSQL  ORCL
    AUTO:     OK    OK     OK
    TABLE:    OK    OK     OK
    IDENTITY: OK    OK     OK
    SEQUENCE: OK    NS     OK
    SUN V9:   PSQL  MYSQL  ORCL
    AUTO:     NOK   NOK     OK
    TABLE:    OK    NOK     OK
    IDENTITY: OK    OK      OK
    SEQUENCE: OK    OK      OK
    WLS 10:   PSQL  MYSQL  ORCL
    AUTO:     NOK    OK     NOK
    TABLE:    NOK    NOK    NOK
    IDENTITY: OK     OK     NOK
    SEQUENCE: NOK    NOK    NOKOK: All is well, no exceptions and all data in DB
    NOK: Exceptions, DB not OK
    NS: Not supported
    Does anyone have an idea what I could try to get rid of the Exceptions?
    Thanks for your help.

  • Java multithreading support in Oracle JVM

    Dear all,
    I have some questions and observations regarding multithreading support in Oracle JVM. I have some java code that is stored in the database and is multithreaded (in separate threads I run a plsql procedure that does a lot of precessing). If I run the code with my standalone JVM it works like a charm, everything gets executed in separate threads. But if I store the code in the database and run it (with the custom JVM Oracle implemented for the server) it does not do any threading, all I have is a single thread that runs everything sequentially.
    The logic is this: using JDBC I create a connection, get a parameter (number of threads) and then launch the threads (each thread creates its own connection and runs the plsql procedure). No resource is shared (I have no synchronized code, I do not yield).
    My question is: does Oracle JVM supports multithreading or not? If yes, how to achieve it? Maybe there is something handled in JDBC? (although my code useses JDBC is not multithreaded) If this is not possible with java, do you now how to run something (oracle function, procedure) concurrently with PLSQL? (I tried with DBMS_JOBS but it does not work on all my databases and our DBAs discourage the use of them). Performing multithreading my launching different sqlPlus processes is not an option (as we have no security standard regarding the authentication -> connection is made by specifying in clear text the user and password).
    I wanted to use java because is more simple, secure (the connection is already established as the classes are stored in the database) and easy to maintain (until now we use different scripts which run on Unix and Windows and this leads to double work).
    The Oracle versions I use are 10g and 11g.
    Thank you all very much for your time
    Just the best,
    Don

    don wrote:
    My question is: does Oracle JVM supports multithreading or not? If yes, how to achieve it? Maybe there is something handled in JDBC? (although my code useses JDBC is not multithreaded) If this is not possible with java, do you now how to run something (oracle function, procedure) concurrently with PLSQL? (I tried with DBMS_JOBS but it does not work on all my databases and our DBAs discourage the use of them). Performing multithreading my launching different sqlPlus processes is not an option (as we have no security standard regarding the authentication -> connection is made by specifying in clear text the user and password).
    (Obviously the other post answers your question.)
    If I am reading that correctly then you have a management issue - not a technological one.
    You have a task to complete, presumably doing it efficiently is something that the company wants.
    And you have two alternatives both of which the DBAs are not allowing you to use.
    So at that point it is up to management to insist that the DBAs provide specific technological reasons (not hand waving) why those solutions are not suitable. And they should also be required to provide the outline of an alternative that is suitable.
    Besides that you might consider why your solution cannot be implemented entirely in a single threaded PL/SQL routine. The fact that is harder is not a reason when the point of the excercise is to create something that is more efficient.

  • Multithreaded clients and Oracle JDBC-drivers?

    Are the thin and OCI8 drivers for Oracle multithreaded? (I know they're thread safe)
    I.e. Can many threads share the same Connection object (and statement objects) to do their requests without the requests being serialized to the DB?
    Sun's javadoc of package java.sql says:
    We require that all operations on all the java.sql objects be multi-thread safe and able to cope correctly with having several threads simultaneously calling the same object.
    Some drivers may allow more concurrent execution than others. Developers can assume fully concurrent execution; if the driver requires some form of synchronization, it will provide it. The only difference visible to the developer will be that applications will run with reduced concurrency.
    For example, two Statements on the same Connection can be executed concurrently and their ResultSets can be processed concurrently (from the perspective of the developer). Some drivers will provide this full concurrency. Others may execute one statement and wait until it completes before sending the next.
    One specific use of multi-threading is to cancel a long running statement. This is done by using one thread to execute the statement and another to cancel it with its Statement.cancel() method.
    Restated again for Oracle; Will threads run concurrently when using the same connection and statements, or will the calls be serialized?

    In the connection pool, I specified:
    user
    password
    url
    In the deployment tool (Sun Java Appl. Server 8 BE Update 1), I specified the "Resource Reference" for the EJB. This leads to the following entries in sun-ejb-jar.xml:
    <res-ref-name>jdbc/pdisasdb</res-ref-name>        
       <jndi-name>jdbc/pdisasdb</jndi-name>        
          <default-resource-principal>         
             <name>myname</name>          
             <password>geheim</password>        
          </default-resource-principal> 
    </resource-ref> The strange thing is, that now it works without this entry - but I am not gaga, yesterday it doesnt...

  • Multithread writing to Oracle E-Business Suite

    Hi,
    I have a customer with IC which is call and custom order management API in OEBS. Currently IC is processing the message sequential with only one thread. Is possible to make IC use two or more threads to imporve the throughput?
    Rgds
    Jens

    Hi Narsing,
    thanks for your reply. in e-bis there is one ap like payable. in that there r around 50 api's r there. if i want to call Create Credit Card Issuer Invoice(which is available at payable and payable invoice) api then what is the procedure to configure oracle apps adapter?, can u give me the reply in depth. actually i am the new to soa and bpel.
    thanks

  • Couldn't initialize Oracle client library

    Hi,gurus:
    My IDES4.7 installed windows200 with DB oracle9I,it's ok before. but after i repaired the OS after a vital error, once i started the SAPMMC, first it's yellow, after a wile it's green but later the disp+work.exe turned grey.
    the flowing is the log from dev_w2
    Please do me a favor,thanks a lot.
    trc file: "dev_w2", trc level: 1, release: "640"
    ACTIVE TRACE LEVEL           1
    ACTIVE TRACE COMPONENTS      all, M

    B Wed Jul 02 20:28:15 2008
    B  create_con (con_name=R/3)
    B  Loading DB library 'D:\usr\sap\HFS\SYS\exe\run\dboraslib.dll' ...
    B  Library 'D:\usr\sap\HFS\SYS\exe\run\dboraslib.dll' loaded
    B  Version of 'D:\usr\sap\HFS\SYS\exe\run\dboraslib.dll' is "640.00", patchlevel (0.220)
    B  New connection 0 created
    M sysno      00
    M sid        HFS
    M systemid   560 (PC with Windows NT)
    M relno      6400
    M patchlevel 0
    M patchno    221
    M intno      20020600
    M make:      multithreaded, ASCII
    M pid        2404
    M
    M  ***LOG Q0Q=> tskh_init, WPStart (Workproc 2 2404) [dpxxdisp.c   1164]
    I  MtxInit: -2 0 0
    M  DpSysAdmExtCreate: ABAP is active

    M Wed Jul 02 20:28:16 2008
    M  DpShMCreate: sizeof(wp_adm)          13312     (832)
    M  DpShMCreate: sizeof(tm_adm)          2379840     (11840)
    M  DpShMCreate: sizeof(wp_ca_adm)          18000     (60)
    M  DpShMCreate: sizeof(appc_ca_adm)     6000     (60)
    M  DpShMCreate: sizeof(comm_adm)          192000     (384)
    M  DpShMCreate: sizeof(vmc_adm)          0     (364)
    M  DpShMCreate: sizeof(wall_adm)          (22440/34344/56/100)
    M  DpShMCreate: SHM_DP_ADM_KEY          (addr: 06DE0040, size: 2672144)
    M  DpShMCreate: allocated sys_adm at 06DE0040
    M  DpShMCreate: allocated wp_adm at 06DE17D8
    M  DpShMCreate: allocated tm_adm_list at 06DE4BD8
    M  DpShMCreate: allocated tm_adm at 06DE4C00
    M  DpShMCreate: allocated wp_ca_adm at 07029C40
    M  DpShMCreate: allocated appc_ca_adm at 0702E290
    M  DpShMCreate: allocated comm_adm_list at 0702FA00
    M  DpShMCreate: allocated comm_adm at 0702FA18
    M  DpShMCreate: allocated vmc_adm_list at 0705E818
    M  DpShMCreate: system runs without vmc_adm
    M  DpShMCreate: allocated ca_info at 0705E840
    M  DpShMCreate: allocated wall_adm at 0705E848
    M  ThTaskStatus: rdisp/reset_online_during_debug 0
    X  EmInit: MmSetImplementation( 2 ).
    X  <ES> client 2 initializing ....
    X  Using implementation flat
    M  <EsNT> Memory Reset disabled as NT default
    X  ES initialized.

    M Wed Jul 02 20:28:17 2008
    M  calling db_connect ...
    C  Prepending D:\oracle\ora92 to Path.
    C  got NLS_LANG='AMERICAN_AMERICA.WE8DEC' from environment
    C  *** ERROR => Couldn't initialize Oracle client library,
    please check your installation!
    [dbsloci.c    2015]
    M  ***LOG R19=> tskh_init, db_connect ( DB-Connect 000256) [thxxhead.c   1282]
    M  in_ThErrHandle: 1
    M  *** ERROR => tskh_init: db_connect (step 1, th_errno 13, action 3, level 1) [thxxhead.c   9696]

    M  Info for wp 2

    M    stat = 4
    M    reqtype = 1
    M    act_reqtype = -1
    M    rq_info = 0
    M    tid = -1
    M    mode = 255
    M    len = -1
    M    rq_id = 65535
    M    rq_source = 255
    M    last_tid = 0
    M    last_mode = 0
    M    int_checked_resource(RFC) = 0
    M    ext_checked_resource(RFC) = 0
    M    int_checked_resource(HTTP) = 0
    M    ext_checked_resource(HTTP) = 0
    M    report = >                                        <
    M    action = 0
    M    tab_name = >                              <

    M  *****************************************************************************
    M  *
    M  *  LOCATION    SAP-Server shining_HFS_00 on host shining (wp 2)
    M  *  ERROR       tskh_init: db_connect
    M  *
    M  *  TIME        Wed Jul 02 20:28:17 2008
    M  *  RELEASE     640
    M  *  COMPONENT   Taskhandler
    M  *  VERSION     1
    M  *  RC          13
    M  *  MODULE      thxxhead.c
    M  *  LINE        9881
    M  *  COUNTER     1
    M  *
    M  *****************************************************************************

    M  PfStatDisconnect: disconnect statistics
    M  Entering TH_CALLHOOKS
    M  ThCallHooks: call hook >ThrSaveSPAFields< for event BEFORE_DUMP
    M  *** ERROR => ThrSaveSPAFields: no valid thr_wpadm [thxxrun1.c   730]
    M  *** ERROR => ThCallHooks: event handler ThrSaveSPAFields for event BEFORE_DUMP failed [thxxtool3.c  255]
    M  Entering ThSetStatError
    M  Entering ThReadDetachMode
    M  call ThrShutDown (1)...
    M  ***LOG Q02=> wp_halt, WPStop (Workproc 2 2404) [dpnttool.c   357]

    Hello Wang,
    > C *** ERROR => Couldn't initialize Oracle client library,
    Have you also restored / re-installed the oracle client libs on your windows system? It seems like the oracle client libs are missing.
    Regards
    Stefan

  • Is connection pooling and sharing available on Oracle 9i RDBMS ?

    Hello,
    I would like to connect from oracle to sql server through db link and ODBC (Heterogenous connectivity). But every session in oracle launch session in sql server. Is it possible to have connection pooling and sharing from Oracle RDBMS level ? I need one solution : when (for example) i run 100 sessions in Oracle i would like to see 10 sessions on sql server. I would like remain 90 sessions from oracle to be queued.
    I would mention that i was using Heterogenous connectivity with multithreading agent (agtctl) without success.
    appreciate any help :-)

    There are two concepts you could evaluate, but they are mainly used for connections to the database, not to sqlserver, but if you can make them work with heterogeneous connectivity this could help:
    Connection Pooling. When many sessions are connecting to the same database, it could be that some of them remain idle. Oracle can detect them and timed them out letting another session to enter into the database, letting the idle session remain open without closing its session. This is configured by means of the shared server architecture.
    Session Multiplexing. Session multiplexing allows the same bandwidth to be used by many sessions at the same time, this enables the server to use fewer network connection endpoints for incoming request. In order for you to configure session multiplexing you have to configure connection manager.
    Ref. Oracle® Database Net Services Administrator's Guide
    10g Release 2 (10.2)
    Part Number B14212-02
    ~ Madrid
    http://hrivera99.blogspot.com/

  • Pro*c multithreaded application has memory leak

    Hi there,
    I posted this message a week ago in OCI section, nobody answer me.
    I am really curious if my application has a bug or the pro*c has a bug.
    Anyone can compile the sample code and test it easily.
    I made multithreaded application which queries dynamic SQL, it works.
    But the memory leaks when i query the SQL statement.
    The more memory leaks, the more i query the SQL statement, even same SQL
    statement.
    I check it with top, shell command.
    My machine is SUN E450, Solaris 8. Oracle 9.2.0.1
    Compiler : gcc (GCC) 3.2.2
    I changed source code which is from
    $(ORACLE_HOME)/precomp/demo/proc/sample10.pc
    the sample10 doesn't need to be multithreaded. But i think it has to work
    correctly if i changed it to multithreaded application.
    the make file and source code will be placed below.
    I have to figure out the problem.
    Please help
    Thanks in advance,
    the make file is below
    HOME = /user/jkku
    ORA = $(ORACLE_HOME)
    CC = gcc
    PROC = proc
    LC_INCL = -I$(HOME)/work/dbmss/libs/include
    lc_incl = include=$(HOME)/work/dbmss/libs/include
    SYS_INCL =
    sys_incl =
    ORA_INCL = -I. \
    -I$(ORA)/precomp/public \
    -I$(ORA)/rdbms/public \
    -I$(ORA)/rdbms/demo \
    -I$(ORA)/rdbms/pbsql/public \
    -I$(ORA)/network/public \
    -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD
    INCLUDES = $(LC_INCL) $(SYS_INCL) $(ORA_INCL)
    includes = $(lc_incl) $(sys_incl)
    LC_LIBS =
    SYS_LIBS = -lpthread -lsocket -lnsl -lrt
    ORA_LIBS = -L$(ORA)/lib/ -lclntsh
    LIBS = $(LC_LIBS) $(SYS_LIBS) $(ORA_LIBS)
    # Define C Compiler flags
    CFLAGS += -D_Solaris64_ -m64
    CFLAGS += -g -D_REENTRANT
    # Define pro*c Compiler flags
    PROCFLAGS += THREADS=YES
    PROCFLAGS += CPOOL=YES
    # Our object files
    PRECOMPS = sample10.c
    OBJS = sample10.o
    .SUFFIXES: .o .c .pc
    .c.o:
    $(CC) -c $(CFLAGS) $(INCLUDES) $*.c
    .pc.c:
    $(PROC) $(PROCFLAGS) $(includes) $*.pc $*.c
    all: sample10
    sample10: $(PRECOMPS) $(OBJS)
    $(CC) $(CFLAGS) -o sample10 $(OBJS) $(LIBS)
    clean:
    rm -rf *.o sample10 sample10.c
    the source code is below which i changed the oracle sample10.pc to
    multithreaded application.
    Sample Program 10: Dynamic SQL Method 4
    This program connects you to ORACLE using your username and
    password, then prompts you for a SQL statement. You can enter
    any legal SQL statement. Use regular SQL syntax, not embedded SQL.
    Your statement will be processed. If it is a query, the rows
    fetched are displayed.
    You can enter multi-line statements. The limit is 1023 characters.
    This sample program only processes up to MAX_ITEMS bind variables and
    MAX_ITEMS select-list items. MAX_ITEMS is #defined to be 40.
    #include <stdio.h>
    #include <string.h>
    #include <setjmp.h>
    #include <sqlda.h>
    #include <stdlib.h>
    #include <sqlcpr.h>
    /* Maximum number of select-list items or bind variables. */
    #define MAX_ITEMS 40
    /* Maximum lengths of the names of the
    select-list items or indicator variables. */
    #define MAX_VNAME_LEN 30
    #define MAX_INAME_LEN 30
    #ifndef NULL
    #define NULL 0
    #endif
    /* Prototypes */
    #if defined(__STDC__)
    void sql_error(void);
    int oracle_connect(void);
    int alloc_descriptors(int, int, int);
    int get_dyn_statement(void);
    void set_bind_variables(void);
    void process_select_list(void);
    void help(void);
    #else
    void sql_error(/*_ void _*/);
    int oracle_connect(/*_ void _*/);
    int alloc_descriptors(/*_ int, int, int _*/);
    int get_dyn_statement(/* void _*/);
    void set_bind_variables(/*_ void -*/);
    void process_select_list(/*_ void _*/);
    void help(/*_ void _*/);
    #endif
    char *dml_commands[] = {"SELECT", "select", "INSERT", "insert",
    "UPDATE", "update", "DELETE", "delete"};
    EXEC SQL INCLUDE sqlda;
    EXEC SQL INCLUDE sqlca;
    EXEC SQL BEGIN DECLARE SECTION;
    char dyn_statement[1024];
    EXEC SQL VAR dyn_statement IS STRING(1024);
    EXEC SQL END DECLARE SECTION;
    EXEC ORACLE OPTION (ORACA=YES);
    EXEC ORACLE OPTION (RELEASE_CURSOR=YES);
    SQLDA *bind_dp;
    SQLDA *select_dp;
    /* Define a buffer to hold longjmp state info. */
    jmp_buf jmp_continue;
    char *db_uid="dbmuser/dbmuser@dbmdb";
    sql_context ctx;
    int err_sql;
    enum{
    SQL_SUCC=0,
    SQL_ERR,
    SQL_NOTFOUND,
    SQL_UNIQUE,
    SQL_DISCONNECT,
    SQL_NOTNULL
    int main()
    int i;
    EXEC SQL ENABLE THREADS;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    /* Connect to the database. */
    if (connect_database() < 0)
    exit(1);
    EXEC SQL CONTEXT USE :ctx;
    /* Process SQL statements. */
    for (;;)
    /* Allocate memory for the select and bind descriptors. */
    if (alloc_descriptors(MAX_ITEMS, MAX_VNAME_LEN, NAME_LEN) != 0)
    exit(1);
    (void) setjmp(jmp_continue);
    /* Get the statement. Break on "exit". */
    if (get_dyn_statement() != 0)
    break;
    EXEC SQL PREPARE S FROM :dyn_statement;
    EXEC SQL DECLARE C CURSOR FOR S;
    /* Set the bind variables for any placeholders in the
    SQL statement. */
    set_bind_variables();
    /* Open the cursor and execute the statement.
    * If the statement is not a query (SELECT), the
    * statement processing is completed after the
    * OPEN.
    EXEC SQL OPEN C USING DESCRIPTOR bind_dp;
    /* Call the function that processes the select-list.
    * If the statement is not a query, this function
    * just returns, doing nothing.
    process_select_list();
    /* Tell user how many rows processed. */
    for (i = 0; i < 8; i++)
    if (strncmp(dyn_statement, dml_commands, 6) == 0)
    printf("\n\n%d row%c processed.\n", sqlca.sqlerrd[2], sqlca.sqlerrd[2] == 1 ? '\0' : 's');
    break;
    /* Close the cursor. */
    EXEC SQL CLOSE C;
    /* When done, free the memory allocated for pointers in the bind and
    select descriptors. */
    for (i = 0; i < MAX_ITEMS; i++)
    if (bind_dp->V != (char *) 0)
    free(bind_dp->V);
    free(bind_dp->I); /* MAX_ITEMS were allocated. */
    if (select_dp->V != (char *) 0)
    free(select_dp->V);
    free(select_dp->I); /* MAX_ITEMS were allocated. */
    /* Free space used by the descriptors themselves. */
    SQLSQLDAFree(ctx, bind_dp);
    SQLSQLDAFree(ctx, select_dp);
    } /* end of for(;;) statement-processing loop */
    disconnect_database();
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    EXEC SQL COMMIT WORK RELEASE;
    puts("\nHave a good day!\n");
    return;
    * Allocate the BIND and SELECT descriptors using sqlald().
    * Also allocate the pointers to indicator variables
    * in each descriptor. The pointers to the actual bind
    * variables and the select-list items are realloc'ed in
    * the set_bind_variables() or process_select_list()
    * routines. This routine allocates 1 byte for select_dp->V
    * and bind_dp->V, so the realloc will work correctly.
    alloc_descriptors(size, max_vname_len, max_iname_len)
    int size;
    int max_vname_len;
    int max_iname_len;
    int i;
    * The first sqlald parameter determines the maximum number of
    * array elements in each variable in the descriptor. In
    * other words, it determines the maximum number of bind
    * variables or select-list items in the SQL statement.
    * The second parameter determines the maximum length of
    * strings used to hold the names of select-list items
    * or placeholders. The maximum length of column
    * names in ORACLE is 30, but you can allocate more or less
    * as needed.
    * The third parameter determines the maximum length of
    * strings used to hold the names of any indicator
    * variables. To follow ORACLE standards, the maximum
    * length of these should be 30. But, you can allocate
    * more or less as needed.
    if ((bind_dp =
    SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) ==
    (SQLDA *) 0)
    fprintf(stderr,
    "Cannot allocate memory for bind descriptor.");
    return -1; /* Have to exit in this case. */
    if ((select_dp =
    SQLSQLDAAlloc(ctx, size, max_vname_len, max_iname_len)) == (SQLDA *)
    0)
    fprintf(stderr,
    "Cannot allocate memory for select descriptor.");
    return -1;
    select_dp->N = MAX_ITEMS;
    /* Allocate the pointers to the indicator variables, and the
    actual data. */
    for (i = 0; i < MAX_ITEMS; i++) {
    bind_dp->I = (short *) malloc(sizeof (short));
    select_dp->I = (short *) malloc(sizeof(short));
    bind_dp->V = (char *) malloc(1);
    select_dp->V = (char *) malloc(1);
    return 0;
    int get_dyn_statement()
    char *cp, linebuf[256];
    int iter, plsql;
    for (plsql = 0, iter = 1; ;)
    if (iter == 1)
    printf("\nSQL> ");
    dyn_statement[0] = '\0';
    fgets(linebuf, sizeof linebuf, stdin);
    cp = strrchr(linebuf, '\n');
    if (cp && cp != linebuf)
    *cp = ' ';
    else if (cp == linebuf)
    continue;
    if ((strncmp(linebuf, "EXIT", 4) == 0) ||
    (strncmp(linebuf, "exit", 4) == 0))
    return -1;
    else if (linebuf[0] == '?' ||
    (strncmp(linebuf, "HELP", 4) == 0) ||
    (strncmp(linebuf, "help", 4) == 0))
    help();
    iter = 1;
    continue;
    if (strstr(linebuf, "BEGIN") ||
    (strstr(linebuf, "begin")))
    plsql = 1;
    strcat(dyn_statement, linebuf);
    if ((plsql && (cp = strrchr(dyn_statement, '/'))) ||
    (!plsql && (cp = strrchr(dyn_statement, ';'))))
    *cp = '\0';
    break;
    else
    iter++;
    printf("%3d ", iter);
    return 0;
    void set_bind_variables()
    int i, n;
    char bind_var[64];
    /* Describe any bind variables (input host variables) */
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    bind_dp->N = MAX_ITEMS; /* Initialize count of array elements. */
    EXEC SQL DESCRIBE BIND VARIABLES FOR S INTO bind_dp;
    /* If F is negative, there were more bind variables
    than originally allocated by sqlald(). */
    if (bind_dp->F < 0)
    printf ("\nToo many bind variables (%d), maximum is %d\n.",
    -bind_dp->F, MAX_ITEMS);
    return;
    /* Set the maximum number of array elements in the
    descriptor to the number found. */
    bind_dp->N = bind_dp->F;
    /* Get the value of each bind variable as a
    * character string.
    * C contains the length of the bind variable
    * name used in the SQL statement.
    * S contains the actual name of the bind variable
    * used in the SQL statement.
    * L will contain the length of the data value
    * entered.
    * V will contain the address of the data value
    * entered.
    * T is always set to 1 because in this sample program
    * data values for all bind variables are entered
    * as character strings.
    * ORACLE converts to the table value from CHAR.
    * I will point to the indicator value, which is
    * set to -1 when the bind variable value is "null".
    for (i = 0; i < bind_dp->F; i++)
    printf ("\nEnter value for bind variable %.*s: ",
    (int)bind_dp->C, bind_dp->S);
    fgets(bind_var, sizeof bind_var, stdin);
    /* Get length and remove the new line character. */
    n = strlen(bind_var) - 1;
    /* Set it in the descriptor. */
    bind_dp->L = n;
    /* (re-)allocate the buffer for the value.
    sqlald() reserves a pointer location for
    V but does not allocate the full space for
    the pointer. */
    bind_dp->V = (char *) realloc(bind_dp->V, (bind_dp->L + 1));
    /* And copy it in. */
    strncpy(bind_dp->V, bind_var, n);
    /* Set the indicator variable's value. */
    if ((strncmp(bind_dp->V, "NULL", 4) == 0) ||
    (strncmp(bind_dp->V, "null", 4) == 0))
    *bind_dp->I = -1;
    else
    *bind_dp->I = 0;
    /* Set the bind datatype to 1 for CHAR. */
    bind_dp->T = 1;
    return;
    void process_select_list()
    int i, null_ok, precision, scale;
    if ((strncmp(dyn_statement, "SELECT", 6) != 0) &&
    (strncmp(dyn_statement, "select", 6) != 0))
    select_dp->F = 0;
    return;
    /* If the SQL statement is a SELECT, describe the
    select-list items. The DESCRIBE function returns
    their names, datatypes, lengths (including precision
    and scale), and NULL/NOT NULL statuses. */
    select_dp->N = MAX_ITEMS;
    EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp;
    /* If F is negative, there were more select-list
    items than originally allocated by sqlald(). */
    if (select_dp->F < 0)
    printf ("\nToo many select-list items (%d), maximum is %d\n",
    -(select_dp->F), MAX_ITEMS);
    return;
    /* Set the maximum number of array elements in the
    descriptor to the number found. */
    select_dp->N = select_dp->F;
    /* Allocate storage for each select-list item.
    sqlprc() is used to extract precision and scale
    from the length (select_dp->L).
    sqlnul() is used to reset the high-order bit of
    the datatype and to check whether the column
    is NOT NULL.
    CHAR datatypes have length, but zero precision and
    scale. The length is defined at CREATE time.
    NUMBER datatypes have precision and scale only if
    defined at CREATE time. If the column
    definition was just NUMBER, the precision
    and scale are zero, and you must allocate
    the required maximum length.
    DATE datatypes return a length of 7 if the default
    format is used. This should be increased to
    9 to store the actual date character string.
    If you use the TO_CHAR function, the maximum
    length could be 75, but will probably be less
    (you can see the effects of this in SQL*Plus).
    ROWID datatype always returns a fixed length of 18 if
    coerced to CHAR.
    LONG and
    LONG RAW datatypes return a length of 0 (zero),
    so you need to set a maximum. In this example,
    it is 240 characters.
    printf ("\n");
    for (i = 0; i < select_dp->F; i++)
    char title[MAX_VNAME_LEN];
    /* Turn off high-order bit of datatype (in this example,
    it does not matter if the column is NOT NULL). */
    sqlnul ((unsigned short *)&(select_dp->T), (unsigned short
    *)&(select_dp->T), &null_ok);
    switch (select_dp->T)
    case 1 : /* CHAR datatype: no change in length
    needed, except possibly for TO_CHAR
    conversions (not handled here). */
    break;
    case 2 : /* NUMBER datatype: use sqlprc() to
    extract precision and scale. */
    sqlprc ((unsigned int *)&(select_dp->L), &precision,
    &scale);
    /* Allow for maximum size of NUMBER. */
    if (precision == 0) precision = 40;
    /* Also allow for decimal point and
    possible sign. */
    /* convert NUMBER datatype to FLOAT if scale > 0,
    INT otherwise. */
    if (scale > 0)
    select_dp->L = sizeof(float);
    else
    select_dp->L = sizeof(int);
    break;
    case 8 : /* LONG datatype */
    select_dp->L = 240;
    break;
    case 11 : /* ROWID datatype */
    case 104 : /* Universal ROWID datatype */
    select_dp->L = 18;
    break;
    case 12 : /* DATE datatype */
    select_dp->L = 9;
    break;
    case 23 : /* RAW datatype */
    break;
    case 24 : /* LONG RAW datatype */
    select_dp->L = 240;
    break;
    /* Allocate space for the select-list data values.
    sqlald() reserves a pointer location for
    V but does not allocate the full space for
    the pointer. */
    if (select_dp->T != 2)
    select_dp->V = (char *) realloc(select_dp->V,
    select_dp->L + 1);
    else
    select_dp->V = (char *) realloc(select_dp->V,
    select_dp->L);
    /* Print column headings, right-justifying number
    column headings. */
    /* Copy to temporary buffer in case name is null-terminated */
    memset(title, ' ', MAX_VNAME_LEN);
    strncpy(title, select_dp->S, select_dp->C);
    if (select_dp->T == 2)
    if (scale > 0)
    printf ("%.*s ", select_dp->L+3, title);
    else
    printf ("%.*s ", select_dp->L, title);
    else
    printf("%-.*s ", select_dp->L, title);
    /* Coerce ALL datatypes except for LONG RAW and NUMBER to
    character. */
    if (select_dp->T != 24 && select_dp->T != 2)
    select_dp->T = 1;
    /* Coerce the datatypes of NUMBERs to float or int depending on
    the scale. */
    if (select_dp->T == 2)
    if (scale > 0)
    select_dp->T = 4; /* float */
    else
    select_dp->T = 3; /* int */
    printf ("\n\n");
    /* FETCH each row selected and print the column values. */
    EXEC SQL WHENEVER NOT FOUND GOTO end_select_loop;
    for (;;)
    EXEC SQL FETCH C USING DESCRIPTOR select_dp;
    /* Since each variable returned has been coerced to a
    character string, int, or float very little processing
    is required here. This routine just prints out the
    values on the terminal. */
    for (i = 0; i < select_dp->F; i++)
    if (*select_dp->I < 0)
    if (select_dp->T == 4)
    printf ("%-*c ",(int)select_dp->L+3, ' ');
    else
    printf ("%-*c ",(int)select_dp->L, ' ');
    else
    if (select_dp->T == 3) /* int datatype */
    printf ("%*d ", (int)select_dp->L,
    *(int *)select_dp->V);
    else if (select_dp->T == 4) /* float datatype */
    printf ("%*.2f ", (int)select_dp->L,
    *(float *)select_dp->V);
    else /* character string */
    printf ("%-*.*s ", (int)select_dp->L,
    (int)select_dp->L, select_dp->V);
    printf ("\n");
    end_select_loop:
    return;
    void help()
    puts("\n\nEnter a SQL statement or a PL/SQL block at the SQL> prompt.");
    puts("Statements can be continued over several lines, except");
    puts("within string literals.");
    puts("Terminate a SQL statement with a semicolon.");
    puts("Terminate a PL/SQL block (which can contain embedded
    semicolons)");
    puts("with a slash (/).");
    puts("Typing \"exit\" (no semicolon needed) exits the program.");
    puts("You typed \"?\" or \"help\" to get this message.\n\n");
    int connect_database()
    err_sql = SQL_SUCC;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    EXEC SQL CONTEXT ALLOCATE :ctx;
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL CONNECT :db_uid;
    if(err_sql != SQL_SUCC){
    printf("err => connect database(ctx:%ld, uid:%s) failed!\n", ctx, db_uid);
    return -1;
    return 1;
    int disconnect_database()
    err_sql = SQL_SUCC;
    EXEC SQL WHENEVER SQLERROR DO sql_error();
    EXEC SQL WHENEVER NOT FOUND DO sql_not_found();
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL COMMIT WORK RELEASE;
    EXEC SQL CONTEXT FREE:ctx;
    return 1;
    void sql_error()
    printf("err => %.*s", sqlca.sqlerrm.sqlerrml, sqlca.sqlerrm.sqlerrmc);
    printf("in \"%.*s...\'\n", oraca.orastxt.orastxtl, oraca.orastxt.orastxtc);
    printf("on line %d of %.*s.\n\n", oraca.oraslnr, oraca.orasfnm.orasfnml,
    oraca.orasfnm.orasfnmc);
    switch(sqlca.sqlcode) {
    case -1: /* unique constraint violated */
    err_sql = SQL_UNIQUE;
    break;
    case -1012: /* not logged on */
    case -1089:
    case -3133:
    case -1041:
    case -3114:
    case -3113:
    /* �6�Ŭ�� shutdown�ǰų� �α��� ���°� �ƴҶ� ��b�� �õ� */
    /* immediate shutdown in progress - no operations are permitted */
    /* end-of-file on communication channel */
    /* internal error. hostdef extension doesn't exist */
    err_sql = SQL_DISCONNECT;
    break;
    case -1400:
    err_sql = SQL_NOTNULL;
    break;
    default:
    err_sql = SQL_ERR;
    break;
    EXEC SQL CONTEXT USE :ctx;
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    EXEC SQL ROLLBACK WORK;
    void sql_not_found()
    err_sql = SQL_NOTFOUND;

    Hi Jane,
    What version of Berkeley DB XML are you using?
    What is your operating system and your hardware platform?
    For how long have been the application running?
    What is your current container size?
    What's set for EnvironmentConfig.setThreaded?
    Do you know if containers have previously not been closed correctly?
    Can you please post the entire error output?
    What's the JDK version, 1.4 or 1.5?
    Thanks,
    Bogdan

  • Can't mount database using Oracle 8i on linux

    I am not able to mount an Oracle database.
    I am new to Oracle and am working on an Oracle8i installation on an
    Intel Linux Suse 6.3 platform. I am using only one harddrive and am
    not using the 4 mount points as mentioned for efficiecy purposes in
    the Oracle documentation..I am using the installation cd from Oracle8i
    for Linux Starter Kit by Oracle Press. If anyone has this book they
    can refer to pages 41-44 for the examples I followed.
    As sysdba in sqplplus using the STARTUP command I can not Mount the
    database -step 2 of the 3 stage process (Start, Mount and Open the
    database) of opening an Oracle database.
    I show the errors I encountered when I did the first 2 of the 3 steps
    in the step-by-step mode (STARTUP NOMOUNT pfile=, ALTER DATABASE
    MOUNT) in the sqlplus session and alert log respectively with startup
    nomount and alter database mount for this sqlplus session.
    Additionally I show the init.ora file lines referring to control file
    which seem to be referred to by the sqlplus error messages and the
    alert.log file. Perhaps some can give me some advice as what I can try
    to fix this problem.
    At the end of this e-mail I added several questions I had in regard to the control
    files. Any help is appreciated.
    Well, here are the sqlplus session results and its alert.log file:
    Oracle sqlplus session usr/oracle as sysdba
    oracle@CHESTNUT:~ > sqlplus
    SQL*Plus: Release 8.1.6.0.0 - Production on Mon Mar 19 20:47:49 2001
    (c) Copyright 1999 Oracle Corporation. All rights reserved.
    Enter user-name: usr/oracle as sysdba
    Connected to an idle instance.
    SQL> startup nomount pfile=/usr/oracle/dbs/init.ora ;
    ORACLE instance started.
    Total System Global Area 24989680 bytes
    Fixed Size 69616 bytes
    Variable Size 24637440 bytes
    Database Buffers 204800 bytes
    Redo Buffers 77824 bytes
    SQL> alter database mount ;
    alter database mount
    ERROR at line 1:
    ORA-00205: error in identifying controlfile, check alert log for more
    info
    SQL> shutdown immediate ;
    ORA-01507: database not mounted
    ORACLE instance shut down.
    SQL> exit
    Disconnected
    oracle@CHESTNUT:~ >
    alert.log file for above session
    Mon Mar 19 20:48:38 2001
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    LICENSE_MAX_USERS = 0
    Starting up ORACLE RDBMS Version: 8.1.6.1.0.
    System parameters with non-default values:
    processes = 50
    shared_pool_size = 3500000
    control_files = ora_control1, ora_control2
    db_block_buffers = 100
    log_buffer = 32768
    log_checkpoint_interval = 10000
    db_files = 80
    db_file_multiblock_read_count= 8
    global_names = TRUE
    db_name = DEFAULT
    parallel_max_servers = 5
    max_dump_file_size = 10240
    PMON started with pid=2
    Load Indicator not supported by OS !
    DBW0 started with pid=3
    LGWR started with pid=4
    CKPT started with pid=5
    SMON started with pid=6
    RECO started with pid=7
    Mon Mar 19 20:48:58 2001
    alter database mount
    Mon Mar 19 20:48:58 2001
    ORA-00202: controlfile: 'ora_control1'
    ORA-27037: unable to obtain file status
    Linux Error: 2: No such file or directory
    Additional information: 3
    Mon Mar 19 20:49:01 2001
    ORA-205 signalled during: alter database mount
    Mon Mar 19 20:49:12 2001
    Shutting down instance (immediate)
    License high water mark = 1
    Mon Mar 19 20:49:12 2001
    ALTER DATABASE CLOSE NORMAL
    ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...
    archiving is disabled
    init.ora control files
    # define two control files by default
    control_files = (ora_control1, ora_control2)
    Here are my control file questions:
    I need to know several points:
    1) What are control files susposed to
    contain and how would I recognize them?
    I used the
    unix find /usr/oracle \*ctl* -print
    command to locate files with a ctl extension.
    This resulted in about a dozen such files in
    different directories as shown below:
    ./bin/lsnrctl
    ./bin/extractlib
    ./bin/agtctl
    ./bin/oidctl
    ./bin/lsnrctl0
    ./bin/agtctlO
    ./rdbms/demo/ulcase1.ctl
    ./rdbms/demo/ulcase10.ctl
    ./rdbms/demo/ulcase2.ctl
    ./rdbms/demo/ulcase3.ctl
    ./rdbms/demo/ulcase4.ctl
    ./rdbms/demo/ulcase5.ctl
    ./rdbms/demo/ulcase6.ctl
    ./rdbms/demo/ulcase7.ctl
    ./rdbms/demo/ulcase8.ctl
    ./rdbms/demo/ulcase9.ctl
    ./ldap/load/dn.ctl
    ./ldap/load/attr_store.ctl
    ./ord/ts/demo/tsquick/tsquick.ctl
    ./ord/ts/demo/usageutl/utildat.ctl
    ./ord/ts/demo/usage/stockdat.ctl
    ./ord/ts/demo/usage/stockinc.ctl
    ./ord/ts/demo/retrofit/sales.ctl
    ./ord/ts/demo/retrofit/sales2.ctl
    ./ord/ts/demo/applet/indexdemo.ctl
    ./javavm/admin/libjox8com_sun_jndi_ldap_ctl.so
    ./md/demo/examples/migctl.h
    ./md/demo/examples/migctl.c
    2) On page 100 in the book Oracle 8i A Beginners's
    by Oracle Press mention is made of a
    CREATE CONTROLFILE command that can under
    circumstances be used to re-create a control-file.
    but that is all that is said about it. Perhaps
    you might know something more about it.
    3) Would you recommend any good text for
    Oracle DBA's, especially for the problem of the sort
    that I am encountering?
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by ():
    I am not able to mount an Oracle database.<HR></BLOCKQUOTE>
    Hi ()
    My problem is accessing the database with sqlplus system/manager @oralin, on page 55 of the Linux starter kit. Do you notice the space here, between system/manager.. and.. @oralin. I think it needs to be there.
    Is your database named Chestnut?
    And for Startup, why are you using init.ora? the book mentions initoralin.ora on page 43.
    Your configurations are different than recommended in the book. I'm not sure if any of this helps, but maybe you can help me. When I try sqlplus system/manager @oralin, the response is: can't connect to oralin.sql.
    According to the book, I need to use @oralin at the end of the command in order to see if I have properly configured the server for MTS, a multithreaded server.
    Any ideas? I hope I can help further.
    gilles56

  • How to configure ENV and DB for multithreaded application?

    Hi,
    From document, I know DB_THREAD must be checked for both ENV and DB, but , I don't know which one is best choice for multithreaded application while facing DB_INIT_LOCK and DB_INIT_CDB. In my application, there maybe multi readers and writers at the same time, should I use DB_INIT_LOCK instead of DB_INIT_CDB? what other flags should I use?
    DB_INIT_CDB provides multiple reader/single writer access while DB_INIT_LOCK should be used when multiple processes or threads are going to be reading and writing a Berkeley DB database.
    Thanks for your seggestions and answers.

    Thanks for the explanation,
    The Berkeley DB Concurrent Data Store product
    allows for multiple reader/single writer access
    to a database. This means that at any point in time,
    there may be either multiple readers accessing a
    database or a single writer updating the database.
    Berkeley DB Concurrent Data Store is intended for
    applications that need support for concurrent updates
    to a database that is largely used for reading.
    If you are looking to support multiple readers and
    multiple writers then take a look at the Transactional
    Data Store product
    (http://download.oracle.com/docs/cd/E17076_02/html/programmer_reference/transapp.html)
    In this case the Environment is typically opened with:
    DB_INIT_MPOOL, DB_INIT_LOCK, DB_INIT_LOG, and DB_INIT_TXN.
    Let me know if I missed any of your question.
    Thanks,
    Sandra

  • Berkeley DB Sessions at Oracle OpenWorld Sept 19 - 23

    All,
    Just posting some of the Berkeley DB related sessions at Oracle OpenWorld this year. Hope to see you there.
    Session ID:      S317033
    Title:      Oracle Berkeley DB: Enabling Your Mobile Data Strategy
    Abstract:      Mobile data is everywhere. Deploying applications and updates, as well as collecting data from the field and synchronizing it with the Oracle Database server infrastructure, is everyone?s concern today in IT. Mobile devices, by their very nature, are easily damaged, lost, or stolen. Therefore, enabling secure, rapid mobile deployment and synchronization is critically important. By combining Oracle Berkeley DB 11g and Oracle Database Lite Mobile Server, you can easily link your mobile devices, users, applications, and data with the corporate infrastructure in a safe and reliable manner. This session will discuss several real-world use cases.
    Speaker(s):
    Eric Jensen, Oracle, Principal Product Manager
    Greg Rekounas, Rekounas.org,
    Event:      JavaOne and Oracle Develop
    Stream(s):      ORACLE DEVELOP, DEVELOP
    Track(s):      Database Development
    Tags:      Add Berkeley DB
    Session Type:      Conference Session
    Session Category:      Case Study
    Duration:      60 min.
    Schedule:      Wednesday, September 22, 11:30 | Hotel Nikko, Golden Gate
    Session ID:      S318539
    Title:      Effortlessly Enhance Your Mobile Applications with Oracle Berkeley DB and SQLite
    Abstract:      In this session, you'll learn the new SQL capabilities of Oracle Berkeley DB 11g. You'll discover how Oracle Berkeley DB is a drop-in replacement for SQLite; applications get improved performance and concurrency without sacrificing simplicity and ease of use. This hands-on lab explores seamless data synchronization for mobile applications using the Oracle Mobile Sync Server to synchronize data with the Oracle Database. Oracle Berkeley DB is an OSS embedded database that has the features, options, reliability, and flexibility that are ideal for developing lightweight commercial mobile applications. Oracle Berkeley DB supports a wide range of mobile platforms, including Android.
    Speaker(s):
    Dave Segleau, Oracle, Product Manager
    Ashok Joshi, Oracle, Senior Director, Development
    Ron Cohen, Oracle, Member of Technical Staff
    Eric Jensen, Oracle, Principal Product Manager
    Event:      JavaOne and Oracle Develop
    Stream(s):      ORACLE DEVELOP, DEVELOP
    Track(s):      Database Development
    Tags:      Add 11g, Berkeley DB, Embedded Development, Embedded Technology
    Session Type:      Hands-on Lab
    Session Category:      Features
    Duration:      60 min.
    Schedule:      Wednesday, September 22, 16:45 | Hilton San Francisco, Imperial Ballroom A
    Session ID:      S317032
    Title:      Oracle Berkeley DB: Adding Scalability, Concurrency, and Reliability to SQLite
    Abstract:      Oracle Berkeley DB and SQLite: two industry-leading libraries in a single package. This session will look at use cases where the Oracle Berkeley DB library's advantages bring strong enhancements to common SQLite scenarios. You'll learn how Oracle Berkeley DB?s scalability, concurrency, and reliability significantly benefit SQLite applications. The session will focus on Web services, multithreaded applications, and metadata management. It will also explore how to leverage the powerful features in SQLite to maximize the functionality of your application while reducing development costs.
    Speaker(s):
    Jack Kreindler, Genie DB,
    Scott Post, Thomson Reuters, Architect
    Dave Segleau, Oracle, Product Manager
    Event:      JavaOne and Oracle Develop
    Stream(s):      ORACLE DEVELOP, DEVELOP
    Track(s):      Database Development
    Tags:      Add Berkeley DB
    Session Type:      Conference Session
    Session Category:      Features
    Duration:      60 min.
    Schedule:      Monday, September 20, 11:30 | Hotel Nikko, Nikko Ballroom I
    Session ID:      S317038
    Title:      Oracle Berkeley DB Java Edition: High Availability for Your Java Data
    Abstract:      Oracle Berkeley DB Java Edition is the most scalable, highest performance Java application data store available today. This session will focus on the latest features, including triggers and sync with Oracle Database as well as new performance and scalability enhancements for high availability, with an emphasis on real-world use cases. We'll discuss deployment, configuration, and maximized throughput scenarios. You'll learn how you can use Oracle Berkeley DB Java Edition High Availability to increase the reliability and performance of your Java application data storage.
    Speaker(s):
    Steve Shoaff, UnboundID Corp, CEO
    Alex Feinberg, Linkedin,
    Ashok Joshi, Oracle, Senior Director, Development
    Event:      JavaOne and Oracle Develop
    Stream(s):      ORACLE DEVELOP, DEVELOP
    Track(s):      Database Development
    Tags:      Add Berkeley DB
    Session Type:      Conference Session
    Session Category:      Features
    Duration:      60 min.
    Schedule:      Thursday, September 23, 12:30 | Hotel Nikko, Mendocino I / II
    Session ID:      S314396
    Title:      Java SE for Embedded Meets Oracle Berkeley DB at the Edge
    Abstract:      This session covers a special case of edge-to-enterprise computing, where the edge consists of embedded devices running Java SE for Embedded in combination with Oracle Berkeley DB Java Edition, a widely used embedded database. The approach fits a larger emerging trend in which edge embedded devices are "smart"--that is, they come equipped with an embedded (in-process) database for structured persistent storage of data as needed. In addition, these devices may optionally come with a thin middleware layer that can perform certain basic data processing operations locally. The session highlights the synergies between both technologies and how they can be utilized. Topics covered include implementation and performance optimization.
    Speaker(s):      Carlos Lucasius, Oracle , Java Embedded Engineering
    Carlos Lucasius works in the Java Embedded and Real-Time Engineering product team at Oracle Corporation, where he is involved in development, testing, and technical support. Prior to joining Sun (now Oracle), he worked as an consultant to IT departments at various companies in both North-America and Europe; specific application domains he was involved in include artificial intelligence, pattern recognition, advanced data processing, simulation, and optimization as applied to complex systems and processes such as intelligent instruments and industrial manufacturing. Carlos has presented frequently at scientific conferences, universities/colleges, and corporations across North-America and Europe. He has also published a number of papers in refereed international journals covering applied scientific research in abovementioned areas.
    Event:      JavaOne and Oracle Develop
    Stream(s):      JAVAONE
    Track(s):      Java for Devices, Card, and TV
    Session Type:      Conference Session
    Session Category:      Case Study
    Duration:      60 min.
    Schedule:      Tuesday, September 21, 13:00 | Hilton San Francisco, Golden Gate 1
    Session ID:      S313952
    Title:      Developing Applications with Oracle Berkeley DB for Java and Java ME Smartphones
    Abstract:      Oracle Berkeley DB is a high-performance, embeddable database engine for developers of mission-critical systems. It runs directly in the application that uses it, so no separate server is required and no human administration is needed, and it provides developers with fast, reliable, local persistence with zero administration. The Java ME platform provides a new, rich user experience for cell phones comparable to the graphical user interfaces found on the iPhone, Google Android, and other next-generation cell phones. This session demonstrates how to use Oracle Berkeley DB and the Java ME platform to deliver rich database applications for today's cell phones.
    Speaker(s):      Hinkmond Wong, Oracle, Principal Member of Technical Staff
    Hinkmond Wong is a principal engineer with the Java Micro Edition (Java ME) group at Oracle. He was the specification lead for the Java Community Process (JCP) Java Specification Requests (JSRs) 36, 46, 218, and 219, Java ME Connected Device Configuration (CDC) and Foundation Profile. He holds a B.S.E degree in Electrical Engineering from the University of Michigan (Ann Arbor) and an M.S.E degree in Computer Engineering from Santa Clara University. Hinkmond's interests include performance tuning in Java ME and porting the Java ME platform to many types of embedded devices. His recent projects include investigating ports of Java ME to mobile devices, such as Linux/ARM-based smartphones and is the tech lead of CDC and Foundation Profile libraries. He is the author of the book titled "Developing Jini Applications Using J2ME Technology".
    Event:      JavaOne and Oracle Develop
    Stream(s):      JAVAONE
    Track(s):      Java ME and Mobile, JavaFX and Rich User Experience
    Tags:      Add Application Development, Java ME, Java Mobile, JavaFX Mobile, Mobile Applications
    Session Type:      Conference Session
    Session Category:      Tips and Tricks
    Duration:      60 min.
    Schedule:      Monday, September 20, 11:30 | Hilton San Francisco, Golden Gate 3
    I think I have them all. If I have missed any, please reply and I can update the list, or just post the info in the reply.
    Thanks,
    Greg Rekounas

    are any links to access these Seminars??

  • SAP MMC  disk + work Stop(Ecc6( Adap+jav),win 2003 -32 bit , oracle-10.2)

    Hi Friends,
    I hope somebody can help.
    I have an Ides Ecc6(java+adap) installation on Oracle 10..*.os win 2003 32 bit
    Then I try to start the System in mmc the dispatcher is stopping (first yeloow then grey) and no error  messages
    when is see sys log in SAP MMC
    erro: SAP-Basis System: Initialization           DB-Connect Failed, Return Code  000256
    when i try R3trans-d
    Log:
    C:\Documents and Settings\accadm>r3trans -d
    This is r3trans version 6.14 (release 700 - 15.06.07 - 15:50:00)
    unicode enabled version
    2EETW000 sap_dext called with msgnr "2":
    2EETW000 -
    db call info -
    2EETW000 function:   db_ntab
    2EETW000 fcode:      NT_RDTDESCR
    2EETW000 tabname:    TADIR
    2EETW000 len (char): 5
    2EETW000 key:        TADIR
    2EETW000 retcode:    2
    r3trans finished (0012)
    Dev_wo.lo file
    trc file: "dev_w0", trc level: 1, release: "700"
    ACTIVE TRACE LEVEL           1
    ACTIVE TRACE COMPONENTS      all, MJ

    B Thu Apr 16 14:07:43 2009
    B  create_con (con_name=R/3)
    B  Loading DB library 'D:\usr\sap\ACC\DVEBMGS00\exe\dboraslib.dll' ...
    B  Library 'D:\usr\sap\ACC\DVEBMGS00\exe\dboraslib.dll' loaded
    B  Version of 'D:\usr\sap\ACC\DVEBMGS00\exe\dboraslib.dll' is "700.08", patchlevel (0.107)
    B  New connection 0 created
    M sysno      00
    M sid        ACC
    M systemid   560 (PC with Windows NT)
    M relno      7000
    M patchlevel 0
    M patchno    111
    M intno      20050900
    M make:      multithreaded, Unicode, optimized
    M pid        3724
    M
    M  kernel runs with dp version 229000(ext=109000) (@(#) DPLIB-INT-VERSION-229000-UC)
    M  length of sys_adm_ext is 576 bytes
    M  ***LOG Q0Q=> tskh_init, WPStart (Workproc 0 3724) [dpxxdisp.c   1301]
    I  MtxInit: 30000 0 0
    M  DpSysAdmExtCreate: ABAP is active
    M  DpSysAdmExtCreate: VMC (JAVA VM in WP) is not active

    M Thu Apr 16 14:07:44 2009
    M  DpShMCreate: sizeof(wp_adm)          18672     (1436)
    M  DpShMCreate: sizeof(tm_adm)          4232256     (21056)
    M  DpShMCreate: sizeof(wp_ca_adm)          24000     (80)
    M  DpShMCreate: sizeof(appc_ca_adm)     8000     (80)
    M  DpCommTableSize: max/headSize/ftSize/tableSize=500/8/528056/528064
    M  DpShMCreate: sizeof(comm_adm)          528064     (1048)
    M  DpSlockTableSize: max/headSize/ftSize/fiSize/tableSize=0/0/0/0/0
    M  DpShMCreate: sizeof(slock_adm)          0     (96)
    M  DpFileTableSize: max/headSize/ftSize/tableSize=0/0/0/0
    M  DpShMCreate: sizeof(file_adm)          0     (72)
    M  DpShMCreate: sizeof(vmc_adm)          0     (1536)
    M  DpShMCreate: sizeof(wall_adm)          (38456/34360/64/184)
    M  DpShMCreate: sizeof(gw_adm)     48
    M  DpShMCreate: SHM_DP_ADM_KEY          (addr: 06810040, size: 4892312)
    M  DpShMCreate: allocated sys_adm at 06810040
    M  DpShMCreate: allocated wp_adm at 06812090
    M  DpShMCreate: allocated tm_adm_list at 06816980
    M  DpShMCreate: allocated tm_adm at 068169B0
    M  DpShMCreate: allocated wp_ca_adm at 06C1FDF0
    M  DpShMCreate: allocated appc_ca_adm at 06C25BB0
    M  DpShMCreate: allocated comm_adm at 06C27AF0
    M  DpShMCreate: system runs without slock table
    M  DpShMCreate: system runs without file table
    M  DpShMCreate: allocated vmc_adm_list at 06CA89B0
    M  DpShMCreate: allocated gw_adm at 06CA89F0
    M  DpShMCreate: system runs without vmc_adm
    M  DpShMCreate: allocated ca_info at 06CA8A20
    M  DpShMCreate: allocated wall_adm at 06CA8A28
    X  EmInit: MmSetImplementation( 2 ).
    X  MM global diagnostic options set: 0
    X  <ES> client 0 initializing ....
    X  Using implementation view
    X  <EsNT> Using memory model view.
    M  <EsNT> Memory Reset disabled as NT default
    X  ES initialized.
    M  ThInit: running on host oiam

    M Thu Apr 16 14:07:46 2009
    M  calling db_connect ...
    C  Prepending D:\usr\sap\ACC\DVEBMGS00\exe to Path.
    C  Oracle Client Version: '10.2.0.1.0'
    C  Client NLS settings: AMERICAN_AMERICA.UTF8
    C  Logon as OPS$-user to get SAPSR3's password
    C  Connecting as /@ACC on connection 0 (nls_hdl 0) ... (dbsl 700 250407)
    C  Nls CharacterSet                 NationalCharSet              C      EnvHp      ErrHp ErrHpBatch
    C    0 UTF8                                                      1   06DF1478   06DF6A14   06DF629C
    C  Attaching to DB Server ACC (con_hdl=0,svchp=06DF61E8,srvhp=06E07DD4)
    C  Starting user session (con_hdl=0,svchp=06DF61E8,srvhp=06E07DD4,usrhp=06E53768)
    C  Now '/@ACC' is connected (con_hdl 0, nls_hdl 0).
    C  Got SAPSR3's password from OPS$-user
    C  Disconnecting from connection 0 ...
    C  Closing user session (con_hdl=0,svchp=06DF61E8,usrhp=06E53768)
    C  Now I'm disconnected from ORACLE
    C  Connecting as SAPSR3/<pwd>@ACC on connection 0 (nls_hdl 0) ... (dbsl 700 250407)
    C  Nls CharacterSet                 NationalCharSet              C      EnvHp      ErrHp ErrHpBatch
    C    0 UTF8                                                      1   06DF1478   06DF6A14   06DF629C
    C  Starting user session (con_hdl=0,svchp=06DF61E8,srvhp=06E07DD4,usrhp=06E53768)
    C  Now 'SAPSR3/<pwd>@ACC' is connected (con_hdl 0, nls_hdl 0).
    C  Database NLS settings: AMERICAN_AMERICA.UTF8
    C  DB instance ACC is running on OIAM with ORACLE version 10.2.0.1.0 since APR 16, 2009, 14:07:26
    B  Connection 0 opened (DBSL handle 0)
    B  Wp  Hdl ConName          ConId     ConState     TX  PRM RCT TIM MAX OPT Date     Time   DBHost         
    B  000 000 R/3              000000000 ACTIVE       NO  YES NO  000 255 255 20090416 140746 OIAM           
    C  OCI-call failed with -1=OCI_ERROR
    C     SQL error 376: 'ORA-00376: file 25 cannot be read at this time
    C  ORA-01110: data file 25: 'D:\ORACLE\ACC\SAPDATA1\SR3_22\SR3.DATA22''
    C  *** ERROR => Error 376 in stmt_fetch() from oci_execute_stmt(), orpc=0
    [dbsloci.c    12714]
    C  *** ERROR => ORA-376 occurred when executing SQL stmt (parse error offset=0)
    [dbsloci.c    12733]
    C  sc_p=06D44E98,no=0,idc_p=00000000,con=0,act=1,slen=26,smax=256,#vars=0,stmt=06E1C138,table=SVERS                        
    C  SELECT VERSION FROM SVERS ;
    C  sc_p=06D44E98,no=0,idc_p=00000000,con=0,act=1,slen=26,smax=256,#vars=0,stmt=06E1C138,table=SVERS                        
    C  prep=0,lit=0,nsql=0,lobret=0,#exec=1,dbcnt=0,upsh_p=00000000,ocistmth_p=06E0FC68
    C  IN : cols=0,rmax=1,xcnt=0,rpc=0,rowi=0,rtot=0,upto=-1,rsize=0,vmax=0,bound=0,iobuf_p=00000000,vda_p=00000000
    C       lobs=0,lmax=0,lpcnt=0,larr=00000000,lcurr_p=00000000,rret=0
    C  OUT: cols=1,rmax=1,xcnt=1,rpc=0,rowi=0,rtot=0,upto=-1,rsize=144,vmax=32,bound=1,iobuf_p=003F2DC8,vda_p=06E1C3A8
    C       lobs=0,lmax=0,lpcnt=0,larr=00000000,lcurr_p=00000000,rret=0
    C  SELECT VERSION FROM SVERS ;
    B  ***LOG BZA=> table SVERS      does not exist on database            [dblink#3 @ 1299] [dblink  1299 ]
    M  ***LOG R19=> ThInit, db_connect ( DB-Connect 004096) [thxxhead.c   1426]
    M  in_ThErrHandle: 1
    M  *** ERROR => ThInit: db_connect (step 1, th_errno 13, action 3, level 1) [thxxhead.c   10283]

    M  Info for wp 0

    M    stat = WP_RUN
    M    waiting_for = NO_WAITING
    M    reqtype = DP_RQ_DIAWP
    M    act_reqtype = NO_REQTYPE
    M    rq_info = 0
    M    tid = -1
    M    mode = 255
    M    len = -1
    M    rq_id = 65535
    M    rq_source =
    M    last_tid = 0
    M    last_mode = 0
    M    semaphore = 0
    M    act_cs_count = 0
    M    csTrack = 0
    M    csTrackRwExcl = 0
    M    csTrackRwShrd = 0
    M    control_flag = 0
    M    int_checked_resource(RFC) = 0
    M    ext_checked_resource(RFC) = 0
    M    int_checked_resource(HTTP) = 0
    M    ext_checked_resource(HTTP) = 0
    M    report = >                                        <
    M    action = 0
    M    tab_name = >                              <
    M    req.vm = no VM
    M    attachedVm = no VM

    M  *****************************************************************************
    M  *
    M  *  LOCATION    SAP-Server oiam_ACC_00 on host oiam (wp 0)
    M  *  ERROR       ThInit: db_connect
    M  *
    M  *  TIME        Thu Apr 16 14:07:46 2009
    M  *  RELEASE     700
    M  *  COMPONENT   Taskhandler
    M  *  VERSION     1
    M  *  RC          13
    M  *  MODULE      thxxhead.c
    M  *  LINE        10486
    M  *  COUNTER     1
    M  *
    M  *****************************************************************************

    M  PfStatDisconnect: disconnect statistics
    M  Entering TH_CALLHOOKS
    M  ThCallHooks: call hook >ThrSaveSPAFields< for event BEFORE_DUMP
    M  *** ERROR => ThrSaveSPAFields: no valid thr_wpadm [thxxrun1.c   720]
    M  *** ERROR => ThCallHooks: event handler ThrSaveSPAFields for event BEFORE_DUMP failed [thxxtool3.c  260]
    M  Entering ThSetStatError
    M  ThIErrHandle: do not call ThrCoreInfo (no_core_info=0, in_dynp_env=0)
    M  Entering ThReadDetachMode
    M  call ThrShutDown (1)...
    M  ***LOG Q02=> wp_halt, WPStop (Workproc 0 3724) [dpnttool.c   327]
    thanks for support
    keshava

    Hi Rohit
    trc file: "dev_disp", trc level: 1, release: "700"
    sysno      00
    sid        ACC
    systemid   560 (PC with Windows NT)
    relno      7000
    patchlevel 0
    patchno    111
    intno      20050900
    make:      multithreaded, Unicode, optimized
    pid        3452
    Fri Apr 17 14:17:27 2009
    kernel runs with dp version 229000(ext=109000) (@(#) DPLIB-INT-VERSION-229000-UC)
    length of sys_adm_ext is 576 bytes
    SWITCH TRC-HIDE on ***
    ***LOG Q00=> DpSapEnvInit, DPStart (00 3452) [dpxxdisp.c   1239]
         shared lib "dw_xml.dll" version 111 successfully loaded
         shared lib "dw_xtc.dll" version 111 successfully loaded
         shared lib "dw_stl.dll" version 111 successfully loaded
         shared lib "dw_gui.dll" version 111 successfully loaded
         shared lib "dw_mdm.dll" version 111 successfully loaded
    rdisp/softcancel_sequence :  -> 0,5,-1
    use internal message server connection to port 3900
    Fri Apr 17 14:17:32 2009
    WARNING => DpNetCheck: NiHostToAddr(www.doesnotexist0225.qqq.nxst) took 5 seconds
    Fri Apr 17 14:17:36 2009
    WARNING => DpNetCheck: NiAddrToHost(1.0.0.0) took 4 seconds
    ***LOG GZZ=> 2 possible network problems detected - check tracefile and adjust the DNS settings [dpxxtool2.c  5361]
    MtxInit: 30000 0 0
    DpSysAdmExtInit: ABAP is active
    DpSysAdmExtInit: VMC (JAVA VM in WP) is not active
    DpIPCInit2: start server >oiam_ACC_00                             <
    DpShMCreate: sizeof(wp_adm)          18672     (1436)
    DpShMCreate: sizeof(tm_adm)          4232256     (21056)
    DpShMCreate: sizeof(wp_ca_adm)          24000     (80)
    DpShMCreate: sizeof(appc_ca_adm)     8000     (80)
    DpCommTableSize: max/headSize/ftSize/tableSize=500/8/528056/528064
    DpShMCreate: sizeof(comm_adm)          528064     (1048)
    DpSlockTableSize: max/headSize/ftSize/fiSize/tableSize=0/0/0/0/0
    DpShMCreate: sizeof(slock_adm)          0     (96)
    DpFileTableSize: max/headSize/ftSize/tableSize=0/0/0/0
    DpShMCreate: sizeof(file_adm)          0     (72)
    DpShMCreate: sizeof(vmc_adm)          0     (1536)
    DpShMCreate: sizeof(wall_adm)          (38456/34360/64/184)
    DpShMCreate: sizeof(gw_adm)     48
    DpShMCreate: SHM_DP_ADM_KEY          (addr: 06810040, size: 4892312)
    DpShMCreate: allocated sys_adm at 06810040
    DpShMCreate: allocated wp_adm at 06812090
    DpShMCreate: allocated tm_adm_list at 06816980
    DpShMCreate: allocated tm_adm at 068169B0
    DpShMCreate: allocated wp_ca_adm at 06C1FDF0
    DpShMCreate: allocated appc_ca_adm at 06C25BB0
    DpShMCreate: allocated comm_adm at 06C27AF0
    DpShMCreate: system runs without slock table
    DpShMCreate: system runs without file table
    DpShMCreate: allocated vmc_adm_list at 06CA89B0
    DpShMCreate: allocated gw_adm at 06CA89F0
    DpShMCreate: system runs without vmc_adm
    DpShMCreate: allocated ca_info at 06CA8A20
    DpShMCreate: allocated wall_adm at 06CA8A28
    MBUF state OFF
    DpCommInitTable: init table for 500 entries
    Fri Apr 17 14:17:37 2009
    EmInit: MmSetImplementation( 2 ).
    MM global diagnostic options set: 0
    <ES> client 0 initializing ....
    <ES> InitFreeList
    <ES> block size is 1024 kByte.
    Using implementation view
    <EsNT> Using memory model view.
    <EsNT> Memory Reset disabled as NT default
    <ES> 511 blocks reserved for free list.
    ES initialized.
    J2EE server info
      start = TRUE
      state = STARTED
      pid = 3652
      argv[0] = D:\usr\sap\ACC\DVEBMGS00\exe\jcontrol.EXE
      argv[1] = D:\usr\sap\ACC\DVEBMGS00\exe\jcontrol.EXE
      argv[2] = pf=D:\usr\sap\ACC\SYS\profile\ACC_DVEBMGS00_oiam
      argv[3] = -DSAPSTART=1
      argv[4] = -DCONNECT_PORT=1045
      argv[5] = -DSAPSYSTEM=00
      argv[6] = -DSAPSYSTEMNAME=ACC
      argv[7] = -DSAPMYNAME=oiam_ACC_00
      argv[8] = -DSAPPROFILE=D:\usr\sap\ACC\SYS\profile\ACC_DVEBMGS00_oiam
      argv[9] = -DFRFC_FALLBACK=ON
      argv[10] = -DFRFC_FALLBACK_HOST=localhost
      start_lazy = 0
      start_control = SAP J2EE startup framework
    DpJ2eeStart: j2ee state = STARTED
    rdisp/http_min_wait_dia_wp : 1 -> 1
    ***LOG CPS=> DpLoopInit, ICU ( 3.0 3.0 4.0.1) [dpxxdisp.c   1629]
    ***LOG Q0K=> DpMsAttach, mscon ( oiam) [dpxxdisp.c   11753]
    DpStartStopMsg: send start message (myname is >oiam_ACC_00                             <)
    DpStartStopMsg: start msg sent
    CCMS: AlInitGlobals : alert/use_sema_lock = TRUE.
    CCMS: Initalizing shared memory of size 60000000 for monitoring segment.
    CCMS: start to initalize 3.X shared alert area (first segment).
    DpMsgAdmin: Set release to 7000, patchlevel 0
    MBUF state PREPARED
    MBUF component UP
    DpMBufHwIdSet: set Hardware-ID
    ***LOG Q1C=> DpMBufHwIdSet [dpxxmbuf.c   1050]
    DpMsgAdmin: Set patchno for this platform to 111
    Release check o.K.
    Fri Apr 17 14:17:38 2009
    DpJ2eeLogin: j2ee state = CONNECTED
    Fri Apr 17 14:18:25 2009
    MBUF state ACTIVE
    DpModState: change server state from STARTING to ACTIVE
    Fri Apr 17 14:19:53 2009
    J2EE server info
      start = TRUE
      state = ACTIVE
      pid = 3652
      http = 50000
      https = 50001
      load balance = 1
      start_lazy = 0
      start_control = SAP J2EE startup framework

Maybe you are looking for

  • No Data in Field Explorer

    Post Author: Ice_Berg CA Forum: .NET Hi... I'm currently using visual studio 2005 team edition and the built-in Crystal report.In my report, i use the Project data source (from ado.net, I created a view before in the database).In visual studio, when

  • External hard disc not recognized

    I have been using a WD external hard disc with Time Machine. Today I had it plugged into a USB powered hub when the house electrical power briefly went off then on, twice. A message appeared stating that device was removed incorrectly (or words to th

  • Time Stamp via Custom Function

    This is such a basic concept for a custom function that I am assuming someone out there has done it already. I have never created a custom function for Essbase, though I have programmed in a variety of languages and I'm assuming getting the current d

  • Iphone web app

    i am thinking of developing a web app for the iphone. if i do not plan on charging for it do i have to go through the approval process? can people start using it immediately. i do realize that it would not be on itunes but that is okay with me. thank

  • Black bars around my screen.

    I have recently gotten adobe premiere, and after effects. Everytime I export there is a black bar around the screen. http://us.toshiba.com/video-electronics/camcorders/camileo-x100/ That is the camera link , and it is 1080p 30fps. thank you in advanc