Multi-Thread vs. ConnectionPool vs. Connection Management

Hi there,
In an OCI8-JDBC context - do I have three choices ????
Multi-Trhead / one connection:
Share one connection for all requests using
one thread for each client
Connection-Pool:
Create one connection for each client
Connection-Management:
multiplex over one connection using
getConnection(jdbc:oracle:oci8:@description...."
null

Hi there,
In an OCI8-JDBC context - do I have three choices ????
Multi-Trhead / one connection:
Share one connection for all requests using
one thread for each client
Connection-Pool:
Create one connection for each client
Connection-Management:
multiplex over one connection using
getConnection(jdbc:oracle:oci8:@description...."
null

Similar Messages

  • Memory leaks and multi threading issues in managed client.

    In our company we use a lot of Oracle, and after the release of the managed provider we migrated all applications to it. First the  things were very impressive : the new client was faster, but after some days applications that uses 100MB with old client goes to 1GB and up. The memory is not the only issue, we use a lot of multi threading, and we experience connection drops and not disposal, after 1 days working one of the application had over 100 sessions on the server. I think there is something wrong with connection pool and multi threading.
    Is someone experience same problems.
    Yesterday we went back with unmanaged provider. Now things are back to normal.

    connection drops: did you try to use "Validate Connection=true" parameter in your connection string?
    the new client was faster: are you sure with this statement? Even in 64bit environment? I got quite serious performance problems when running application under 64bit process: https://forums.oracle.com/thread/2595323

  • Connection manager

    Hello,
    I'm trying to set a test envirinment to learn Oracle Connection Manager. I've read appropriate chapters in Net documentation and a forum thread:
    Re: Configuration of Connection Manager
    But there are still things that I can't work on.
    I have two machines, database on one of them and client on the other. It's database 10g, client on WinXP, database on Linux.
    Where should I install connection manager? on Linux or Windows, maybe any?
    If it was a production environment, what would be the best solution?
    Thanks in advance,
    Aliq

    Hello again,
    thank you both for help. Unfortunately it still doesn't work :/
    Since I couldn't get the install files for Windows (I didn't have cman installed there) I decided to change:
    database on WinXP, so listener there too (listening on 1521, database is called "test" and it's open). Hostname = hostB
    client and cman on Linux. Hostname = hostA
    My cman.ora looks like this:
    cman_ora(
    configuration=
    (address=(protocol=tcp)(host=hostA)(port=1610))
    (rule_list=(src=*)(DST=hostB)(srv=*)(act=accept))
    (rule_list=(src=*)(DST=hostA)(srv=*)(act=accept))
    (PARAMETER_LIST=
    (LOG_DIRECTORY=/u01/app/oracle/product/10.2.0/db_1/network/admin/log)
    (LOG_LEVEL=ADMIN)
    cman.ora:
    testcman=
    (description=
    (SOURCE_ROUTE=YES)
    (ADDRESS=(PROTOCOL=TCP)(HOST=hostA)(port=1610))
    (ADDRESS=(PROTOCOL=TCP)(HOST=hostB)(port=1521))
    (CONNECT_DATA =
    (SERVER=DEDICATED)
    (SERVICE_NAME=test)
    Then I do (on Linux -> client/cman)
    $cmctl
    cmctl> administer
    Current instance CMAN_ora is not yet started
    Connections refer to
    (description=
    (SOURCE_ROUTE=YES)
    (ADDRESS=(PROTOCOL=TCP)(HOST=hostA)(port=1610))
    (ADDRESS=(PROTOCOL=TCP)(HOST=hostB)(port=1521))
    (CONNECT_DATA =
    (SERVER=DEDICATED)
    (SERVICE_NAME=test)
    The command completed successfully.
    cmctl:CMAN_ora>startup
    TNS-04012: Unable to start Oracle Connection Manager instance
    Aliq
    Message was edited by:
    user547746
    Message was edited by:
    user547746

  • Multi thread D/B access design.

    Hi,
    I'm trying to performance test a 3 tiered design from client > TCP/IP to Server > ODBC to MSQL.
    I have a multi thread requesting client which connects via sockets to the server.
    The server kicks off multithread servelets which create a connection via ODBC ( Or reuse an existing one ) and communicates the data back to the requesting client.
    However, no matter the number of threads/ports/connections/ODBC data sources/Device managers I use I always get a linear progression for the data I am accessing.
    ie 1 file of 1000 records is 390 milliseconds, 10 is 4600 milliseconds etc.
    Is there somethings simple I'm missing out to make the access to the server linear ?
    The only option I'm considering at the moment is that the MSQL V 7.0 I have is the free one with visual studio and so has been "enhanced" to provide reduced performance.
    Any ideas ?
    Cheers,
    Gary

    The answer to you question is JDBC-ODBC BRIDGE IS SYNCHRONIZED..meaning it is SINGLE THREADED. No matter how many threads you create to access your database, only one thread enters the monitor at a time. The monitor I am referring to is the process space allocated to the thread at any given time, in your case I am referring to the process space as the particular lines of code which are responsible for database access. Your problem can be solved if you go for other database drivers( like type 4 drivers ). There are a variety of mutithreadd drivers available for most of the databases. I have raised this question at Sun Seminars also , and apparently this seems to be the only solution..
    Cheers,
    Shafique Razzaque,
    Senior Apps Developer,
    Singapore.

  • Connection Pooling in OCCI Vs Multi-Threading.

    Hi,
    I am working on an application in which I am using OCCI( Oracle C++ Call Interface)  and multi-threading concepts.
    My application is having different clients( Ex: Client-A, Client-B) and I am offering a set of operations( functions that trigger the Stored Procedures of DataBase ) which are common to all the clients.Each Client can send asynchronous requests of any number.So, is there any chance of using single connection( not connection pooling) to the Data Base for all the clients to manage their requests ?
    Note: Multi-threaded requests are also allowed from each client.
    How can I co-relate multithreading and Connection Pooling in OCCI?
    Can I you multi-threading without Connection Pooling? If so how?
    Will the connection pooling is needed if there is no multi threading concept in my application?
    Please help me on this. Very urgent.
    Thanks in Advance..:)

    Connections are resources that the application uses and a fewer connections can be used by multiple threads if the threads are not always busy with the database activity only, and are doing other work too. This sharing (pooling) can be implemented by the application or the application can leverage the connection pooling features offered by OCI/OCCI (recommended).
    Be aware of connections vs sessions and sharing them (refer to :
    OCI Programming Advanced Topics
    OCCIConnectionPool is to pool connections and OCCIStatelessConnectionPool is to pool sessions. Please see the differences in the above link and apply as appropriate.

  • Java Security Manager in Multi-threaded application

    I am writing a multi-threaded application listening (TCP and UDP) to several ports. To help implement certain security features (eg. refusing connections from certain ip address), I'm using the java.lang.SecurityManager (by subclassing it). I am having a few problems and queries and am hoping someone here can help me.
    1. As all the threads are calling the checkAccept(host, port) method. Is there a way to know which thread is currently accessing the security manager? For example if host A were to make 2 connections to the application, one to thread 1 (say listening to port 5001) and the other to to thread 2 (say listening to port 5002). I intend to refuse the connection to thread 2 but there is not way of differentiating the 2 connections since they are from the same host and there isnt any way of knowing their port number.
    2. Are calls to the Security Manager thread safe?
    I have been having this problem for a long time, would appreciate if someone can help point me to the right direction. cheers.

    1. As all the threads are calling the
    checkAccept(host, port) method. Is there a way to
    know which thread is currently accessing the security
    manager?Just use Thread.currentThread(). As specified in the Javadoc for e.g. SecurityManager.checkAccept().
    2. Are calls to the Security Manager thread safe? No.

  • Proble with multi-threaded app using the same connection

    have a multi-threaded app. The threads all share the
    same connection. They all do some selects / updates.
    The OS is NT 4.0 and the application server is weblogic
    Some times I am getting the error "java.sql.SQLException: Io exception: not in streaming mode"
    and some times I am getting "java.sql.SQLException: Io exception: Protocal violation
    Any Ideas?
    Regards
    Suresh

    Don't create threads.... Your threads should if they are necessary be reusable, your threads should call the connections it needs from the cache service with let's say a max number of N pools (each pool a max number of M connections), if the connection domain asked exists on cache a connection is asked for corresponding pool, if the connection domain is not on cache the less used domain is thrown away (all inner connections closed first) and substituted by the new one requested. While the pool is not full keep creating connections as the request came (and all existing connections are being held and not released), when M connections exists, a request should wait till a connection is released.
    If you can have 20 threads asking for the same connection and the max number of connections on pool is M=10, then yopur threads will wait for a connection being released. All this must be synchronized. You should set M the closest as possible to the normal number of requests you can imagine to happen the same time. You should get connection use it and release it right away if you can have a lot of requests.
    I hope this helps you.

  • NET8 CONNECTION MANAGER 설치와 설정방법

    제품 : SQL*NET
    작성날짜 : 2003-01-15
    NET8 CONNECTION MANAGER 설치와 설정방법
    =======================================
    Purpose
    Oracle Connection Manager(v3.0.x)의 설치와 설정 방법을
    알아 보고 시작시켜 봅니다.
    V3.0.x은 Oracle8 Enterprise Edition에 같이 들어 있으며
    Oracle8의 일부는 아닙니다.
    1. 설치 방법
    2. 설정 방법
    3. 시작 하기 (Windows NT)
    Explanation
    1. 설치 방법
    다음 세가지의 실행 파일이 설치 됩니다.
    CMGW, CMADMIN, CMCTL (Unix 와 VMS)
    CMGW80, CMADM80, CMCTL80(desktop Oracle8에서)
    CMGW, CMADMIN, CMCTL(desktop Oracle8i에서)
    CMGW/CMGW80
    이 것은 Connection Manager의 hub와 같은 역할을 하는
    gateway process입니다.
    CMGW의 기능은 다음과 같습니다.
    - CMADMIN를 등록합니다.
    - SQL*Net 2.x와 NET 8.x에서 오는 접속 요청에 대해 대기합니다.
    기본적으로 1610 port를 사용합니다.
    - NET 8.x listeners에 접속 요청을 발생 시킵니다.
    - client와 server사이의 data를 전달합니다.
    - CMCTL/CMCTL80에 의해 발생되는 요청에 응답합니다.
    CMADMIN/CMADM80
    Connection Manager의 모든 관리적인 문제들을 처리하는 multi-threaded
    process입니다.
    SQL*Net 2.x 와 NET 8.x clients들을 위해
    Oracle Names Server에 있는 주소정보를 유지하는 기능을 합니다.
    - CMGW/CMGW80 등록 작업을 합니다.
    - local Oracle Names Server를 찾습니다.
    - 하나이상의 db instance를 서비스하는 모든 listener들을 관리합니다.
    - CMGW/CMGW80 와 listener에 대한 주소 정보를 등록합니다.
    - 네트워크와 Names Server의 수정된 정보를 감시합니다.
    - CMCTL/CMCTL80의 요청에 응답합니다.
    CMGW, CMADMIN/CMGW80, 와 CMADM80 의 서로간의 정보전달은 IPC를 통해
    이루어 집니다.
    CMAN은 주기적으로 Names Server의 바뀐 정보를 cache에 반영합니다.
    CMCTL/CMCTL80
    CMADM/CMADM80 와 CMGW/CMGW80 를 관리하는 일을 합니다.
    현재 제공되는 명령은 start, stop, status, 그리고 version 입니다.
    CMCTL START [CMAN | CM | ADM]
    이 명령은 Connection Manager 또는 그 구성요소를 시작 시킵니다.
    - 인자가 없는 경우 또는 CMAN을 준 경우는 gateway 와
    administration process를 시작시킵니다.
    - CM 을 주면 gateway process 만 시작됩니다.
    - ADM 을 주면 administration process 만 시작됩니다.
    CMCTL STOP [CM]
    Connection Manager process들을 중지 시킵니다.
    - 인자가 없는 경우 또는 CM 을 준 경우 gateway 와
    administration process 모두를 중지시킵니다.
    gateway process가 중단될 경우 administration process는 자동으로
    중단됩니다.
    현재 진행중인 접속이 있는 경우 CMAN 는 중지될 수 없습니다.
    CMCTL STATUS [CMAN | CM | ADM]
    이 명령은 Connection Manager의 요소들의 상태를 보여줍니다.
    - 인자가 없거나 CMAN이나 CM일 경우 gateway process의 상태를 보여 줍니다.
    - ADM은 administration process의 상태를 보여 줍니다.
    CMCTL VERSION
    이 명령은 control utility의 버젼을 보여 줍니다.
    CMGW/CMGW80 와 CMADM/CMADM80의 버젼은 status명령으로 볼 수 있습니다.
    2. 설정 방법
    client들은 tnsnames.ora 이나 Oracle Names Server 가 필요합니다.
    Connection Manager는 cman.ora 가 필요하며 server는 init.ora에 MTS설정이
    필요합니다.
    client설정
    tnsnames.ora파일의 예 입니다.
    EXAMPLE=
    (DESCRIPTION=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=SERVER.US.ORACLE.COM)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=ORCL)
    하나의 protocol로 Connection Manager를 사용하는 tnsnames.ora파일 예입니다.
    EXAMPLE_CMAN=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=CMAN.US.ORACLE.COM)
    (PORT=1610)
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=SERVER.US.ORACLE.COM)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=ORCL)
    (SOURCE_ROUTE=YES)
    ADDRESS_LIST가 path입니다.
    첫번째 주소가 CMAN에 접속하는 정보이고, 두번째 주소가 서버에
    접속할때 CMAN에 의해 사용되는 주소입니다.
    필요하다면 ADDRESS_LIST 안에 여러개의 CMAN 의 주소를 설정할
    수 있습니다. CMAN은 기본적으로 라우터처럼 동작합니다.
    접속 요청을 다음 hop으로 지정합니다.
    여러개의 protocol로 Connection Manager를 사용하는
    tnsnames.ora파일 예입니다.
    EXAMPLE_CMAN=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=
    (PROTOCOL=SPX)
    (SERVICE=CMAN)
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=SERVER.US.ORACLE.COM)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=ORCL)
    (SOURCE_ROUTE=YES)
    위의 예에서 CMAN에 접속하기 위해서 client는 SPX를 사용하고
    server에 접속하기 위해서 CMAN은 TCP/IP를 사용하게 됩니다.
    Oracle7에서 소개된 Oracle Multi-Protocol Interchange (MPI)과
    같은 기능을 합니다.
    만일 서버까지 가는데 한개 이상의 router가 있는 경우
    SQL*Net 2.3에서 소개된 DESCRIPTION_LIST를 사용할 수 있습니다.
    다음은 DESCRIPTION_LIST를 사용한 tnsnames.ora 파일의 예 입니다.
    EXAMPLE_ROUTES=
    (DESCRIPTION_LIST=
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=CMAN1.US.ORACLE.COM)
    (PORT=1610)
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=SERVER.US.ORACLE.COM)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=ORCL)
    (SOURCE_ROUTE=YES)
    (DESCRIPTION=
    (ADDRESS_LIST=
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=CMAN2.US.ORACLE.COM)
    (PORT=1610)
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=SERVER.US.ORACLE.COM)
    (PORT=1521)
    (CONNECT_DATA=
    (SID=ORCL)
    (SOURCE_ROUTE=YES)
    만일 Oracle Names Server를 사용하면 Connection Manager는 자동으로
    CMAN을 위한 주소를 Names Server에 있는 기존의 주소에 추가하게 됩니다.
    SQLNET.ORA파일에 다음과 같은 parater를 설정할 수 있습니다.
    USE_CMAN = [TRUE | FALSE]
    - TRUE 라고 설정하면 CMAN이 무작위로 뽑은 간접적인 경로를 이용해
    client를 접속시킵니다. ( 적어도 하나의 CMAN address가 있는
    address list)
    - TRUE 그리고 description에 간접 경로가 없는 경우에는 무작위로 뽑은
    경로가 사용됩니다.
    - FALSE 이거나 설정이 안된 경우 무작위로 뽑힌 경로가 사용됩니다.
    Connection Manager 설정
    CMAN 은 한개의 파일(CMAN.ORA)로 설정된다.
    CMAN.ORA 파일은 다음 세개의 부분으로 구성된다.
    1) CMAN - Connection Manager를 위한 listening주소를 포함한다.
    2) CMAN_PROFILE - CMAN 설정 parameter들을 포함한다.
    3) CMAN_RULES - 접속 요청에 대한 필터링에 관련된 규칙을 포함한다.
    CMAN=
    (ADDRESS_LIST=
    (ADDRESS=
    (PROTOCOL=SPX)
    (SERVICE=CMAN)
    (ADDRESS=
    (PROTOCOL=TCP)
    (HOST=CMAN.US.ORACLE.COM)
    (PORT=1610)
    이 CMAN의 예에서는 SPX 와 TCP/IP 두개의 주소에서 listening하고 있습니다.
    CMAN 은 CMAN이 실행되는 장비에서 oracle이 지원하는 모든 protocol에 대해
    listen할 수 있습니다.
    CMAN_PROFILE=
    (PARAMETER_LIST=
    (MAXIMUM_RELAYS=64)
    (LOG_LEVEL=0)
    (TRACING=YES)
    (RELAY_STATISTICS=YES)
    (SHOW_TNS_INFO=NO)
    (USE_ASYNC_CALL=YES)
    (AUTHENTICATION_LEVEL=0)
    각 parameter들에 대한 정의 :
    MAXIMUM_RELAYS = n
    - 허용되는 최대 동시 접속수
    - 기본값 8
    - 최대값 1024
    LOG_LEVEL = n
    - CMAN에 의해 수행되는 logging의 level설정
    - 기본값 0 ( logging이 안됨 )
    - 0에서부터 4까지의 값을 설정할 수 있음
    TRACING = [YES | NO]
    - YES로 설정하면 CMAN은 파일에 tracing을 한다.
    - 기본값 NO
    주의: trace파일을 읽기위새허는 Oracle Trace를 사용하면 됩니다.
    RELAY_STATISTICS = [YES | NO]
    - YES는 I/O활동에 대한 통계정보를 저장하게 합니다.
    예를 들어 :
         - IN bytes 수
         - OUT bytes 수
         - IN packets 수
         - OUT packets 수
    - 기본값 NO
    SHOW_TNS_INFO = [YES | NO]
    - Yes로 설정하면 log 파일에 TNS events를 포함하게 합니다.
    - 기본값 NO
    USE_ASYNC_CALL = [YES | NO]
    - YES로 설정하면 CMAN 접속을 실행하고 받아들이고 대답하는 과정에서
    모든 비동기적인 기능을 사용할 수 있게 합니다.
    - 기본값 NO
    주의: CMAN은 out-of-band breaks를 지원합니다.
    CMAN은 그것을 서버로 전달합니다.
    AUTHENTICATION_LEVEL = [0 | 1]
    - 1로 설정하게 되면 CMAN은 Secure Network Services를 사용하지 않은
    접속 요청은 거절하게 됩니다
    Secure Network Services은 Advanced Networking Option의 일부입니다.
    - 기본값은 0 입니다.
    즉 Secure Network Services가 필요없다는 뜻입니다.
    CMAN_RULES=
    (RULE_LIST=
    (RULE=
    (SRC = shost)
    (DST = dhost)
    (SRV = services)
    (ACT = accept | reject)
    CMAN_RULES에 정의된 parameter들:
    - shost 는 client에서 session을 요청한 source hostname 이거나
    IP address입니다.
    - dhost 는 서버쪽의 hostname 이거나 IP address 입니다.
    - services 는 SID 이름입니다.
    - ACT: 위 세개의 parameter들의 값을 근거로한 들어오는 접속요청에
    대한 승인이나 거절입니다.
    주의: wild-card는 'x'입니다. IP address (d.d.d.d)인 경우에
    각 'd'는 wild-card character인 'x'로 교체될 수 있습니다.
    RULE_LIST내에 여러 RULE들이 정의될 수 있습니다.
    여러 rule들 중에 처음에 맞는 rule이 그 요청에 적용됩니다.
    CMAN_RULES이 존재하는 경우 Connection Manager는 규칙에 허용되지 않은
    것들은 모두 허락되지 않게 합니다.
    만일 CMAN_RULES이 정의되지 않았다면 모든것이 허용됩니다.
    Connection Manager의 제한
    만일 connection path에 사용된 Connection Manager가 한개 이상이라면 (1개
    이상의 hop이라면), tnsnames.ora를 직접 설정해야 하며 Oracle Names Server
    를 사용할 수 없습니다.
    TCP/IP network에서만 Connection Manager는 접근 통제(CMAN_RULES)를 할 수
    있습니다.
    Oracle Multi-Protocol Interchange (MPI) 과의 호환성
    client와 server사이에 단 하나의 MPI만 있다면, MPI를
    Connection Manager로 교체하십시요.
    client와 server사이에 여러개의 MPI가 있다면,
    tnsnames.ora를 수정해서 MPI들을 Connection Manager들로
    교체하십시요.
    SQL*Net V2.x client와의 호환성
    Connection Manager를 SQL*Net 2.x clients과 Oracle 8사이의
    중심이나 접속 필터로 사용하기 위해서는 다음과 같은 일을
    해야 합니다.
    1) Connection Manager를 설치하고 설정합니다..
    2) SQL*Net v2.x client들을 Connection Manager를 MPI처럼 사용
    하도록 설정 합니다.
    Server 설정
    ===========
    NET8의 새로운 기능을 이용하기 위해서는 Connection Manager를 설정
    해야 하며 서버를 Multi-Threaded Server (MTS)로 설정해야 합니다.
    MTS parameter들은 각 instance의 INIT.ORA파일에 설정합니다.
    NET8 MTS를 위한 parameter들은 SQL*Net 2과 다르지 않습니다.
    다음 Connection Pooling 과 Multiplexing 기능을 사용할때
    MTS_DISPATCHERS parameter의 경우만 제외하면 말입니다.
    MTS_DISPATCHERS parameter:
         MTS_DISPATCHERS ="(PROTOCOL=TCP)(POOL=NO)(MULT=ON)"
    이 예에서 TCP/IP를 위해 dispatcher들을 설정하고 Connection Pooling
    기능을 사용하지 못하게 하고, Multiplexing를 가능하게 합니다.
    만일 Connection Pooling 과 Multiplexing 를 사용하지 않을 거라면
    SQL*Net 2.x용으로 정의된 MTS parameter들을 사용하실 수 있습니다.
    좀더 자세한 내용은 MTS관련 문서를 참조 하시기 바랍니다.
    Connection Manager를 사용하는 경우, INIT.ORA에 새로운 parameter를
    설정해야 합니다. Connection Manager는 한개 이상의 physical connection
    을 만들기 때문에 instance의 dispatcher가 허용할 client sessions의 최대값을
    알아야 합니다. SESSIONS라는 parameter가 이 값을 설정합니다.
    이 값은 'LSNRCTL SERVICES' 명령으로 볼 수 있습니다.
    3. 시작 하기 (Windows NT)
    Oracle Names server 환경에서 :
    - command line utility 사용하기
    1. 작업 표시줄에서 시작->실행
    열기: x:\CMCTL80.exe (8i에서는 CMCTL.exe)
    OK<click>
    2. CMCTL> start CMAN <enter>
    - Windows NT 제어판 사용하기
    1. 제어판>SERVICES <double click>
    2. 다음을 찾아 시작 시킵니다.
    (주의: 순서대로 시작시켜야 합니다.)
    OracleCMAdminService80 <click start>
    OracleCMANService80 <click start>
    NON-Oracle Names server 환경에서 :
    - command line utility 사용하기
    1. 작업 표시줄에서 시작->실행
    열기: x:\CMCTL80.exe (8i에서는 CMCTL.exe)
    OK<click>
    2. CMCTL> start CM <enter>
    - Windows NT 제어판 사용하기
    1. 제어판>SERVICES <double click>
    2. 다음을 찾아 시작 시킵니다.
    (주의: 순서대로 시작시켜야 합니다.)
    OracleCMANService80 <click start>
    Reference Ducumment
    ---------------------

    Hi
    You must install the Connection Manager, available on the Oracle8 distribution media, onto the Web server host. You can find the installation instructions in the Net8 Administrator's Guide.
    On the Web server host, create a CMAN.ORA file in the [ORACLE_HOME]/NET8/ADMIN directory. The options you can declare in a CMAN.ORA file include firewall and connection pooling support
    Here is an example of a very simple CMAN.ORA file. Replace <web-server-host> with the name of your Web server host. The fourth line in the file indicates that the connection manager is listening on port 1610. You must use this port number in your connect string for JDBC.
    cman = (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL=TCP)
    (HOST=<web-server-host>)
    (PORT=1610)))
    cman_profile = (parameter_list =
    (MAXIMUM_RELAYS=512)
    (LOG_LEVEL=1)
    (TRACING=YES)
    (RELAY_STATISTICS=YES)
    (SHOW_TNS_INFO=YES)
    (USE_ASYNC_CALL=YES)
    (AUTHENTICATION_LEVEL=0)
    Ariel G.

  • Multi-Thread Messaging

    I'm sure that this question is old hat for the experienced multi-threaded programmers.
    I'm trying to design a server software system, and one of the requirements that I have is that one of the clients (or even the server itself) should be able to pass messages to all of the connected clients.
    I plan to have a persistent (for the lifetime of the connection) thread for each client in order to persist the user authority information. I'd like to utilize this same set of threads, to send messages to, and receive messages from the clients.
    So... Two questions:
    Is this an appropriate way of doing this, or should I setup a different server to manage messagin?
    If this is appropriate; how do I pass a message from one thread to all other threads in the program?
    Thank you for taking the time to read and consider my questions.
    IsomerX

    IsomerX wrote:
    Ok, I can see that.
    It still leaves the question of how to pass the information from one thread to another.The server should know should how many clients that are connected and post a message on each queue. The communication between the server thread and the client handling threads is the queues. That's why I told you to take a look at wait and notify.
    I'm thinking that I need a central dispatch thread, one that has a single, thread safe incoming message queue, that each client-incoming thread has a reference to, and a collection of thread safe outgoing message queues that go to each client-outgoing thread.The queue doesn't need to be thread safe, but yes, you can of course use a thread safe if you want to. (wait/notify must be called from synchronized blocks).
    >
    Are there thread safe queues like this, preferebaly a Generic queue?Yes the are in the concurrency package. (That was added in Java 5)
    Kaj

  • Question using Java API in a multi threaded application for MDX queries

    Currently I’m building a web application that makes a lot of MDX calls using the Essbase Java API. Each time we run an MDX call we basically run the following code:
    IEssbase ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);
    IEssDomain dom = ess.signOn(userName, password, false, null, "embedded");
    IEssCubeView cv = cv=dom.openCubeView("view", hostName, appName, cubeName);
    IEssOpMdxQuery op = cv.createIEssOpMdxQuery();
    op.setQuery(false,mdx,false,IEssOpMdxQuery.EEssMemberIdentifierType.NAME);
    cv.performOperation(op);
    IEssMdDataSet mddata = cv.getMdDataSet();
    cv.close();
    My questions is, is this the correct way to use the API in multi threaded environment where many users may be hitting the application at the same time? For every request do I need to create a separate IEssbase object and sign on to an IEssDomain? Or can I use a single IEssbase and IEssDomain object for the entire application? If not should I call the IEssDomain.signOff() method after each user’s request has completed? Which of the above objects are thread safe? I’m using Essabae 9.3.1. Any insight would be really appreciated.
    Thanks
    David

    Thanks for the input friend,
    I should have mentioned that in my application all
    connections to Essbase use the same user name and
    password so the filtering isn’t a concern. This is my
    first Java application using Essbase has a data
    source, I’m used to connecting to various SQL
    databases and I always use a connection pool, how is
    connection pooling handled in the Essbase java API?I'm not sure what happened to it since I never used it, but there used to be something called the High Availability Services or something that was essentially a connection pool for Essbase JAPI connections, but it required an extra license.
    Since you don't care about identity (everyone has full access to everything), you can create your own connection pool, but you'll have to manage your multithreading yourself. Its been this way since the beginning. The C API isn't/wasn't thread-safe either (we tried).

  • Writing a multi-threaded server

    Hi. I'm working in a starting project here at my company and, as a requirement, I must implement a multithreaded server using SSL connections (SSL over Socket). The secure connection is no longer a concern (after a lot of struggle, I build a simple client/server over SSLSockets that actually works), but I still need to build all the multithreaded code... I'm needing some guidelines and design ideas. Any ideas? Can someone post some interesting links about this subject?
    Thanks in advance!

    >
    For example why must it be multi-threaded in thefirst
    place?Because it will serve a few tens of people
    concurrently.
    tens? Like 50 people or 500 people?
    And how many threads? 3 or 60,000?I do not know yet, but I'm assuming it will be one
    thread per socket connection and possibly another few
    threads doing housekeeping stuff (managing files,
    etc)
    And how long will a thread last? What sort of
    processing will it do?Ain't got all requirements yet!! But basically (at
    least what I understood) it's going to receive lots of
    data, process it and re-route the data to a mainframe
    So 5O (or 500) people are going to connect...
    1. Once a week and deliver 10 giga bytes of data?
    2. Once a minute and deliber 10 giga bytes of data?
    3. Once a week and deliver 1,000 bytes of data?
    4. Once a minute and deliber 1,000 bytes of data?
    And then the general questions for any 'server'...
    -What happens when the server (box or application)fails
    Well, nothing has been said about that matter yet, but
    I guess the server got to resume (or discard)
    unfinished stuff (depending on the status of the
    received data before the connection was lost)
    And how is it going to do that on the 'mainframe'?
    Two easy paths.
    1. The mainframe has a database interface AND the data volume is low enough then you can use transactions.
    2. The data does not have to be committed at once. This could be because it just doesn't always need to go, or because it is 'sequential' (which still requires code but not much.)
    Really hard paths.
    1. 'Lots' of data and it all must be committed at 'once'.
    2. There is no database interface and data must be committed.
    -What is the expected scaling requirements?No clustering involved - it will run on a single
    machine, during a limited time. The system in question
    is a 'contingency control' (not sure about this term
    in English), so it will run when (and if) our client
    get screwed in any way - their buildings destroyed,
    that kind of stuff...
    -How will it be maintained?Sorry, I didn't understood, could you clarify?
    Someone has to make sure the box and application is running. Who is going to do that? What tools will they need to do this?
    If it is you and the users call you directly if it doesn't work then it is easy (code wise.) If it is someone else then you will need to provide tools to ease that. And if someone expects it to work in an automated management system (like with SNMP) it is going to be even more complicated.

  • Multi-Threaded FTP

    Multi-Threaded FTP was a huge attraction for me, and one of the features that sold me on upgrading to Dreamweaver CS6.  However, I haven't seen any sign of it in the product or any documentation to help me use it.  My files keep transferring in the traditional one-at-a-time way.
    Is there something I need to do to enable this feature? Has anybody used this feature yet?

    Might not help but I saw this in the comments on David Powers' blog
    http://foundationphp.com/blog/2012/04/23/my-verdict-on-dreamweaver-cs6/
    "Multi-thread FTP is the default in Dreamweaver CS6. You can neither turn it on nor off. It handles a maximum of three transfers simultaneously in either direction (so you can download at the same time as uploading). However, it doesn’t work with Check In/Check Out."
    He also has the following comments in the body of the blog entry:
    Multichannel FTP
    Let’s be honest. In the past, Dreamweaver’s FTP client was a dog. Not any more. It now supports multichannel transfers, and can even download at the same time as uploading. Orange arrows indicate items queued for transfer. When the transfer begins, the arrow turns green. And if you’re transferring a large item, hovering over the filename displays a tooltip of how much of the file has been transferred. With Dreamweaver CS5.5, it took more than 90 minutes to  upload a WordPress site on my internet connection. Now, it’s more than ten times faster.
    The FTP error messages are also more meaningful. No one is likely to buy Dreamweaver CS6 for its FTP client alone, but this is a major improvement to the program.

  • Multi Thread Server over TCP/IP

    Multi Thread Server over TCP/IP. Does it work?
    In my box it works only over IPC protocol.
    null

    S C Maturi (guest) wrote:
    : Mark Malakanov (guest) wrote:
    : : Multi Thread Server over TCP/IP. Does it work?
    : : In my box it works only over IPC protocol.
    : Mark,
    : Multi threaded server over TCP/IP will not work with
    : the current distribution of Oracle 8.0.5 on Linux.
    : This is corrected and a patch would be released soon.
    : Maturi
    tcp 0 0 bock.nettek-ll:listener bock.nettek-
    llc.co:4196 ESTABLISHED
    tcp 0 0 bock.nettek-llc.co:4196 bock.nettek-
    ll:listener ESTABLISHED
    (I have serveral of these)
    TNS Ping Utility for Linux: Version 8.0.5.0.0 - Production on 07-
    JAN-99 18:45:52
    (c) Copyright 1997 Oracle Corporation. All rights reserved.
    Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)
    (PORT=1521))
    OK (440 msec)
    ...and from my install log you see that I selected MTS:
    -[ YESNO
    Q> Would you like MTS (Multi-Threaded Server) configured
    and the SQL*Net$
    A> TRUE
    Please explain? Will TCP/IP MTS work via the loopback adapter
    only? So far I have not tried a remote TCP/IP connection.
    -STEVEl
    null

  • SSIS 2012: SSIS Error Code "Excel Connection Manager" failed with error code 0xC0202009.

    Hi,
    This is kind of weird issue that I am experiencing with excel connection manager in SSIS 2012. This issue occurs sometimes but when I close and re-open SSDT (SQL Server Data Tools - newer BIDS) then this issues goes off temporarily.
    Just FYI, through SSDT environment I executed the package successfully with both settings Run64bit runtime setting to Yes and No when error does not occur.
    So far I have installed
    http://www.microsoft.com/en-us/download/details.aspx?id=13255 (Microsoft Access Database Engine 2010 Redistributable).
    I still remember for older versions of SQL Server (2005 & 2008) that I have executed Excel connection SSIS packages with Run64bit runtime = false i.e. in 32-bit mode. As far as I know I think Excel 64-bit issue has been resolved with SQL Server
    2012 release.
    Here is the detail of error message:
    TITLE: Package Validation Error
    Package Validation Error
    ADDITIONAL INFORMATION:
    Error at Data Flow Task [Excel Source [2]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection
    Manager" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.
    Error at Data Flow Task [SSIS.Pipeline]: Excel Source failed validation and returned error code 0xC020801C.
    Error at Data Flow Task [SSIS.Pipeline]: One or more component failed validation.
    Error at Data Flow Task: There were errors during task validation.
    Error at Package [Connection manager "Excel Connection Manager"]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
    An OLE DB record is available.  Source: "Microsoft Access Database Engine"  Hresult: 0x80004005  Description: "Unspecified error".
     (Microsoft.DataTransformationServices.VsIntegration)
    Here are my environment details:
    SQL Server 2012 {Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) } , Excel 2010 (32-bit). I am developing SSIS code on Virtual desktops with Windows 7 32-bit OS.
    Also it occurred to me that since Virtual Desktops are on Shared Infrastructure, the source files and SSIS packages (code) can be on Shared drives for e.g. \\<Corpnet>\userdata\<Corp_Users_Grp>\<Username>\Visual Studio 2010\Projects\Integration
    Services Project2\Integration Services Project2\Package.dtsx.
    Does this kind of Shared drives have any impact to give this issue?
    Thanks in advance!
    Ketan
    P.S.: I had look at this forum question -->
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/903bbe1d-e070-4c43-9d3b-0a5193550029/64bit-error-in-excel-connection-manager-in-ssis

    Hi Arthur,
    Thanks for your response.
    Yes, it looks like SSIS still has bunch of issues with Excel files like as follows:
    1) Some times excel source files cannot be parsed by excel source connection manager.
    2) For derive column conversion, we can't replace the existing column. rather, we have to add the derived column as " add as new column" which is tough to manage  while destination mapping.
    3) If an column in excel contains a data which is not of the data type assigned for the column in excel, the excel source reads that data as "null". For the same, we can't validate the data and redirect the erroneous data in reject file.  <-- For
    this we tried IMEX setting also
    4) In multi-tab/sheet excel file, excel source is unable to detect a tab and identify the metadata of the excel.
    I am also checking Microsoft connect for Excel issues with SSIS 2012(https://connect.microsoft.com/SQLServer/SearchResults.aspx?SearchQuery=excel#&&PageIndex=22
    As worst case scenario, I am thinking of converting Excel to CSV file or Flat text file. (http://www.mssqltips.com/sqlservertip/2772/importing-data-from-excel-using-ssis--part-2/).
    Do you think it is advisable to convert Excel into CSV or Flat file.
    Thanks,
    Ketan

  • Custom Connection Manager only works in 32bit- 0xC0011008: Error loading from XML

    I have a very basic / stripped connection manager with only one property (SSIS 2012). It works fine in design time (you can open the connection manager editor and change the value), but in runtime it only works in 32bit mode. The runtime-validate-method
    does work, but if everything validates OK then in 64bit it throws an error when you run the package:
    Exception deserializing the package "The package failed to load due to error 0xC0011008 "Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information
    can be stored.". This occurs when CPackage::LoadFromXML fails.
    The 2 VS projects are .Net 4 class library projects with the Build Platform on "Any CPU"
    I only add references to:
    Microsoft.SqlServer.ManagedDTS - C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll
    Microsoft.SqlServer.Dts.Design - C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.Dts.Design\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Dts.Design.dll
    Compiled DLL's are available in GAC and SQL Server connections folder:
    I made the sourcecode available via codeplex:
    https://ssisconnectionmanager.codeplex.com/SourceControl/latest#myFirstConnectionManager/2012/myFirstConnectionManager/myFirstConnectionManager.cs
    Please mark the post as answered if it answers your question | My SSIS Blog:
    http://microsoft-ssis.blogspot.com |
    Twitter

    AppPrincipal (identity) related? Hint http://serverfault.com/questions/339747/the-package-failed-to-load-due-to-error-0xc0011008-error-loading-from-xml
    Arthur My Blog
    Hi Arthur,
    Looks like something similar (same message, same 64bit issue), will try that tomorrow! But sounds weird that you should tell SSIS which identity to use...
    Found the same thread in MSDN:
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/47d185d3-c801-45cf-becd-3c2524d98353/the-package-failed-to-load-due-to-error-0xc0011008-error-loading-from-xml?forum=sqlintegrationservices
    Please mark the post as answered if it answers your question | My SSIS Blog:
    http://microsoft-ssis.blogspot.com |
    Twitter

Maybe you are looking for

  • Unable to upgrade SQL Server 2008 R2 to SQL Server 2012 SP1

    I'm encountering error after error, after successfully installing the upgrade advisor (which took some doing) and running it with essentially no warnings/errors (the one warning was on the connection strings, as I recall -- and all of the warnings ha

  • How do I install windows 7 without using DVD?

    I have a new macbook pro with retina display, obviously it comes without an optical drive and I haven't had a chance to pick one up yet, but I was wondering if there is a way to intall windows 7 using boot camp without having to use the DVD.

  • Inserting image in ADF Swing

    I'm using Jdeveloper 11.1.1.2.0, i'm trying to show an image stored in an oracle databese in a jSplitPanel. Using jUImageControl i'm able to find the correct row, but the image is never displayed. The log does not return any error. Could you help me

  • Sold-to party error in 'BAPI_SALESORDER_CREATEFROMDAT2'

    Hi, I am using 'BAPI_SALESORDER_CREATEFROMDAT2' and am getting error message 'Please enter sold-to party or ship-to party', Parameter Name - 'SALES_HEADER_IN'. I am using ECC 6.0. In the BAPI, import parameter ORDER_HEADER_IN does not have Sold to pa

  • Would ARD work for the following situation...?

    Hello, trying to logically map out how to do something and wonder if some of ya could help me... Here is the deal.  I'm a narrator and my current studio set-up is one where I have an outer control room where my computer with sound software and monito