JDBC thin and thick clients

What is the difference between JDBC thin and JDBC thick clients and their usage ?

hi,
in sort tearms,
Oracle has a thin client driver which mean you can connect to a oracle database without the Oracle client installed on your machine.
Thick client would need the Oracle Client database drivers etc.. Drivers include JDBC-ODBC bridge drivers JDBC drivers depending on tns resolution.
thanks

Similar Messages

  • What is Thin and Thick Client ? Differences between the Two ? Which is Best

    Dear All,
    I like to develop both web-based and also standalone applications. i like to choose the best drivers for my applications. can anybody suggest which one to choose and what are the drawbacks in each driver ?
    Thanks,
    J.Kathir

    Dear All,
    I like to develop both web-based and
    h web-based and also standalone applications. i like
    to choose the best drivers for my applications. can
    anybody suggest which one to choose and what are the
    drawbacks in each driver ?I dont get what excatly you meaned by driver but basicaly a thin client means it only does the prescentation of data to its user and all the logics will be in a server. for every task it will connect to the server.
    In a Thick client it can do more processing and it will connect to the server only for the tasks that it cant perform with the data it has in the client.
    >
    Thanks,
    J.KathirHere is a general comparison between main features of thin/thick(fat) clients
    Both thin and thick clients has their own advantages and disadvantages. most of time one wins when other fails.
    1. Thin client extencvely uses the server to all its operations which will increace the network traffic and the load on the server. as a result the perfomance of the client will depend on the load and the resources available for the server
    2. But all the logic is in the server so if you are developing multiple clients for the same application (Ex:- Standallone app, Web client, Mobile clients......) you will not need to duplicate logic in each client.
    3. Fat clients reduce the load on server and less dependant on the server. but since they are fat they will take more processing power and memory on client computers.
    4. If you are developing multiple clients as menctioned in 2 you will need to duplicate the logics written the clients

  • Differences between Oracle JDBC Thin and Thick Drivers

    If any body is looking for this information...
    ============================================================
    I have a question concerning the Oracle JDBC thin vs. thick drivers
    and how they might affect operations from an application perspective.
    We're in a Solais 8/Oracle 8.1.7.2 environment. We have several
    applications on several servers connecting to the Oracle database.
    For redundancy, we're looking into setting up TAF (transparent
    application failover). Currently, some of our apps use the Oracle
    <B>JDBC thin</B> drivers to talk to the database, with a connection
    string that like this:
    <B> jdbc:oracle:thin:@host:port:ORACLE_SID </B>
    In a disaster recovery mode, where we would switch the database
    from one server to another, the host name in the above string
    would become invalid. That means we have to shut down our application
    servers and restart them with an updated string.
    Using the Oracle <B>OCI (thick)</B> driver though, allows us to connect
    to a Net8 service instead of a specific server:
    <B> jdbc:oracle:oci8:@NET8_SERVICE_NAME </B>
    Coupled with the FAILOVER=ON option configured in Net8, it is
    then possible to direct a connection from the first server to
    the failover database on another server. This is exactly what
    we would like to do.
    My question is, from an application perspective, how is the Oracle
    thick driver different from the thin driver? If everything
    else is "equal" (i.e. the thick driver is compatible with the
    app servers) would there be something within the the thick/OCI
    driver that could limit functionality vs. the thin driver?
    My understand, which obviously is sketchy, is that the thick
    driver is a superset of the thin driver. If this is the case,
    and for example if all database connections were handled through
    a configuration file with the above OCI connection string, then
    theoretically the thick driver should work.
    ============================================================
    <B>
    In the case with the Oracle, they provide a thin driver that is a 100% Java driver for client-side use without the need of an Oracle installation (maybe that's why we need to input server name and port number of the database server). This is platform indipendent, and has good performance and some features.
    The OCI driver on the other hand is not java, require Oracle installation, platform dependent, performance is faster, and has a complete list of all the features.
    </B>
    ========================================================
    I hope this is what you expect.
    JDBC OCI client-side driver: This is a JDBC Type 2 driver that uses Java native methods to call entrypoints in an underlying C library. That C library, called OCI (Oracle Call Interface), interacts with an Oracle database. <B>The JDBC OCI driver requires an Oracle (7.3.4 or above) client installation (including SQL*Net v2.3 or above) and all other dependent files.</B> The use of native methods makes the JDBC OCI driver platform specific. Oracle supports Solaris, Windows, and many other platforms. This means that the Oracle JDBC OCI driver is not appropriate for Java applets, because it depends on a C library to be preinstalled.
    JDBC Thin client-side driver: This is a JDBC Type 4 driver that uses Java to connect directly to Oracle. It emulates Oracle's SQL*Net Net8 and TTC adapters using its own TCP/IP based Java socket implementation. <B>The JDBC Thin driver does not require Oracle client software to be installed, but does require the server to be configured with a TCP/IP listener. Because it is written entirely in Java, this driver is platform-independent.</B> The JDBC Thin driver can be downloaded into any browser as part of a Java application. (Note that if running in a client browser, that browser must allow the applet to open a Java socket connection back to the server.
    JDBC Thin server-side driver: This is another JDBC Type 4 driver that uses Java to connect directly to Oracle. This driver is used internally by the JServer within the Oracle server. This driver offers the same functionality as the client-side JDBC Thin driver (above), but runs inside an Oracle database and is used to access remote databases. Because it is written entirely in Java, this driver is platform-independent. There is no difference in your code between using the Thin driver from a client application or from inside a server.
    ======================================================
    How does one connect with the JDBC Thin Driver?
    The the JDBC thin driver provides the only way to access Oracle from the Web (applets). It is smaller and faster than the OCI drivers, and doesn't require a pre-installed version of the JDBC drivers.
    import java.sql.*;
    class dbAccess {
    public static void main (String args []) throws SQLException
    DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection
    ("jdbc:oracle:thin:@qit-uq-cbiw:1526:orcl", "scott", "tiger");
    // @machineName:port:SID, userid, password
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
    while (rset.next())
    System.out.println (rset.getString(1)); // Print col 1
    stmt.close();
    How does one connect with the JDBC OCI Driver?
    One must have Net8 (SQL*Net) installed and working before attempting to use one of the OCI drivers.
    import java.sql.*;
    class dbAccess {
    public static void main (String args []) throws SQLException
    try {
    Class.forName ("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    Connection conn = DriverManager.getConnection
    ("jdbc:oracle:oci8:@qit-uq-cbiw_orcl", "scott", "tiger");
    // or oci7 @TNSNames_Entry, userid, password
    Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
    while (rset.next())
    System.out.println (rset.getString(1)); // Print col 1
    stmt.close();
    =================================================================

    Wow, not sure what your question was, but there sure was a lot of information there...
    There really is only one case where failover occurs, and it would not normally be in a disaster recovery situation, where you define disaster recovery as the obliteration of your current server farm, network and concievably the operational support staff. This would require a rebuild of your server, network etc and isn't something done with software.
    Fail over is normally used for high availablity that would take over in case of hardware server failure, or when your support staff wants to do maintenance on the primary server.
    Using the thin and thick driver should have ZERO affect on a failover. Transparent failover will make the secondary server the same IP as the primary, therefore the hostname will still point to the appropriate server. If you are doing this wrong, then you will have to point all your applications to a new IP address. This should be something that you tell your management is UNACCEPTABLE in a fail-over situation, since it is almost sure to fail to fail-over.
    You point out that you are providing the TNSNAME, rather than the HOSTNAME when using the thick driver. That's true within your application, but that name is resolved to either a HOSTNAME, or IP ADDRESS before it is sent to the appropriate Oracle server/instance. It is resolved using either a NAME server (same as DNS server but for Oracle), or by looking at a TNSNAMES file. Since the TNSNAMES files profilerate like rabbits within an organization you don't want a fail over that will make you find and switch all the entries, so you must come up with a fail over that does not require it.
    So, the application should not be concerned with either the hostname, or the IP address changing during fail over. That makes use of the thin or thick client acceptable for fail over.
    Don't know if this will help, but this shows the communication points.
    THIN DRIVER
    client --> dns --> server/port --> SID
    THICK DRIVER
    client --> names server --> dns --> server/port --> SID
    client --> tnsnames     --> dns --> server/port --> SID

  • Difference bewteen thin client and thick client

    Hi:
    can someone explain the difference between the thin client app and thick client app?

    Thin Client: Little to no logic on front end. Typically a 3 tier architecture. Example is a web browser
    Thick Client: Typically a client-server type architecture where some business logic/processing occurs on the front end

  • HFM Thin Client and Thick Client

    Hi
    can anyone tell me what is HFM thin client and thick client
    Thanks

    Thick client is the actual application client view. Most administrators limit that view to only them and provide a workspace (the thin client) as a method of accessing hfm. This is because more can be done in terms of metadata and security changes in the thick client than the thin client.

  • JDBC Thin vs Thick Driver

    Hello,
    We are looking for differences between Oracle JDBC Thin and OCI (thick) driver with respect to
    1. Peformance of the Java application.
    2. Maintenance and administration
    3. Known issues with OCI (thick) driver which is handled by Thin or vice versa.
    4. Better security
    Appreciate any help on the above.
    Thanks and Regards,
    Vamsi Mohan Harish

    1. Performance of the Java application.
    The difference in driver implementation is likely to be trivial compared to other considerations (network round trip time, application design, etc). However if you are really interested then chapter 19 of 'Java Programming with Oracle JDBC' by Donald Bales (O'Reilly) has some good information on this topic. It also happens to be available online: http://www.onjava.com/pub/a/onjava/excerpt/oraclejdbc_19/index.html
    Keep in mind that it is a little out of date now - you should run tests using the current versions of the drivers.
    2. Maintenance and administration
    The JDBC Thin driver is typically easier to update/distribute, as installation consists of copying a .jar file or two. The only case where OCI has an advantage is in the use of Oracle's naming layer for database service abstraction. Of course this assumes the database server is listening for TCP/IP and not the legacy protocols that are only supported by OCI. Failover configurations using TAF are supported by OCI only. The newer 'Fast Connection Failover' feature of 10g RAC can also run over Thin though.
    3. Known issues with OCI (thick) driver which is handled by Thin or vice versa.
    In my experience each has a roughly equal number of bugs. I find it easier to track them down in the Thin driver though :-)
    4. Better security
    The security options for the Thin driver are more limited with regard to external authentication and support for some of the Oracle Advanced Security features. However, both support the basics like encrypted connections. Chapter 23 of the JDBC driver docs goes into more depth: http://download-west.oracle.com/docs/cd/B14117_01/java.101/b10979/toc.htm
    Hope this helps.
    Jonathan.

  • What  is thin and fat client

    Hi,
    I would like to know
    what is thin and fat client.
    what is the difference between thin and fat client.
    How to copy config only client. (No data copy)
    Appreciate for your reply... I will reward the points.
    Thanks
    Atul-

    Hi Atul,
    Thin Clients
    A thin client is designed to be especially small so that the bulk of the data processing occurs on the server. Although the term thin client often refers to software, it is increasingly used for the computers, such as network computers and Net PCs, that are designed to serve as the clients for client/server architectures. A thin client is a network computer without a hard disk drive. They act as a simple terminal to the server and require constant communication with the server as well.
    Thick Clients
    In contrast, a thick client (also called a fat client) is one that will perform the bulk of the processing  in client/server applications. With thick clients, there is no need for continuous server communications as it is mainly communicating archival storage information to the server. As in the case of a thin client, the term is often used to refer to software, but again is also used to describe the networked computer itself. If your applications require multimedia components or that are bandwidth intensive, you'll also want to consider going with thick clients. One of the biggest advantages of thick clients rests in the nature of some operating systems and software being unable to run on thin clients. Thick clients can handle these as it has its own resources.
    <u><b>Thick vs. Thin - A Quick Comparison</b></u>
    <b><i>Thin Clients</i></b>
    - Easy to deploy as they require no extra or specialized software installation
    - Needs to validate with the server after data capture
    - If the server goes down, data collection is halted as the client needs constant communication with the server
    - Cannot be interfaced with other equipment (in plants or factory settings for example)
    - Clients run only and exactly as specified by the server
    - More downtime
    -Portability in that all applications are on the server so any workstation can access
    - Opportunity to use older, outdated PCs as clients
    - Reduced security threat
    <b><i>Thick Clients</i></b>
    - More expensive to deploy and more work for IT to deploy
    - Data verified by client not server (immediate validation)
    - Robust technology provides better uptime
    - Only needs intermittent communication with server
    - More expensive to deploy and more work for IT to deploy
    - Require more resources but less servers
    - Can store local files and applications
    - Reduced server demands
    - Increased security issues
    To copy only config client , there are few more profiles that you can choose in scc8
    SAP_EXBC - SAP_UCSV with cross-client customizing
    SAP_EXPA - SAP_ALL with cross-client customizing
    SAP_EXPC - SAP_CUSV with cross-client customizing
    if it helful reward points are appreciated
    Message was edited by:
            Pierluigi Demaria
    Message was edited by:
            Pierluigi Demaria

  • Diffeence b/w thin and thick driver

    diffeence b/w thin and thick driver

    This thread is moved from "Collections: Lists, Sets, and Maps" to here.

  • Warehouse builder is thin or thick client

    Is warehouse builder a thin or thick client..

    There is a OTN forum for Oracle Warehouse Builder that you should use for this question.

  • JDBC Thin and Oracle 7.3.4

    Hi again.
    Thanks for your previous answer concerning
    the connection between JDeveloper and OAS to the Oracle 7.3.4 database.
    I am now trying to establish a connection with the database from JDeveloper using the JDBC Thin Driver. I pinged the database from a DOS window and all went OK. I haven't installed SQL*Net, because as I understood that wouldn't be necessary, or?
    When I try to create a new connection in JDeveloper to the database and test it, i get this reply in a little window:
    Connection Refused(DESCRIPTION=(TMP=)(VSNNUM=36716544)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
    I've entered the correct IP in the host name and the port is the default 1521 with SID=ORCL. I also entered a username and password that are valid.
    These errorcodes don't say anything to me, maybe you understand them, or maybe it's a simple error...
    Hope you can help me,
    Thanks in advance,
    /Janne ([email protected])

    Ignore this message, I found out for myself.
    The database didn't use the default SID... ;)
    null

  • JDBC Thin and OPS

    Looking to see if anyone has attempted jdbc thin connections to a multi node OPS. Specifically, is there a way to automate failover of the connections when the OPS switches primary nodes?

    I also have the same problem.It is possible jdbc thin connections to a multi node OPS?And how if possible?
    Thankx advance!

  • Thin and Fat Client

    Hey can anybody explain what are Thin Client and Fat Clients and how they are used ??
    Thanks for your reply in advance.
    Regards

    'thin client' is a program with a minimum of code and need a remote (or local) server to do the tasks
    'fat client' is a program (sometimes a stand-alone) with a lot of code and makes allmost the tasks
    for examples:
    if you build a stand alone application of you own it will be a fat client
    if you write an html page with very few java and that page uses google for example, it will be a thin client

  • Bug 585844 JDBC Thin and Char Fields

    I would like to see this bug fixed because the workaround that I
    have been using for the past two years is a cluge. I could buy
    the reasoning listed in the bug database at to why why this bug
    exists, and why it hasn't been fixed, except that it doesn't
    exist in the OCI driver. Please make the drivers consistant.
    The JDBC API does not provide a way to differentiate
    CHARS from VARCHAR2. When setString is used we have chosen to map
    it
    to a VARCHAR2, and as a consequence the blank-padded and
    non-padded
    comparison semantics for CHARs don't work.
    Since this is an API restriction, we can't easily fix it. What
    can be
    done to fix it, is to add an Oracle Extension like
    setChar(1,"one")
    in which case JDBC will know that this type is s CHAR instead of
    a VARCHAR2
    and the comparison semantics will work. I believe that since this
    a JDBC
    restriction, it should be treated as an enhancement request.
    null

    The OCI would hanlde this sort of thing for you (translating the
    char types) which is probably why it works in that driver. The
    thin driver is just using java sockets to transport SQL and there
    is no underlying client layer support.
    null

  • Jdbc thin to thick migraion

    hi all,
    i am trying to migrate an application to fat oci oracle drivers.
    when using thin drivers there was never a problem but prformance was low.... (maybe
    not well programmed?) but nevertheless i migrated somappliactions to fat drivers
    and it was a whaoooo effect they performed a lot better so i decided to migrate
    anything possibe to fat till this day....
    when i sarted this censoed application in the wls 7 server i always got nuberformatexception
    i think when the appliaction tried to parse float values from the database
    following error ocured with 9.xx and 8.xxx oracle fat driver
    ####<
    69:e9e6dc1becbcab34> <010051> <EJB Exception during invocation from home: j2ee.ProductSearchSessionBean_ae
    teip_HomeImpl@29a747 threw exception: javax.ejb.EJBException: nested exception
    is: javax.ejb.FinderException: Exception executing fi
    nder 'findActiveByProductTypeIDApplicationIDExternalProdType':
    java.sql.SQLException: java.lang.NumberFormatException: ,2
    at java.lang.Integer.parseInt(Integer.java:409)
    at java.math.BigInteger.<init>(BigInteger.java:311)
    at java.math.BigInteger.<init>(BigInteger.java:440)
    at java.math.BigDecimal.<init>(BigDecimal.java:153)
    at weblogic.jdbc.oci.ResultSet.getBigDecimal(ResultSet.java:1074)
    at weblogic.jdbc.jts.ResultSet.getBigDecimal(ResultSet.java:703)
    at at.sybase.j2ee.com.shop.ejb.ProductBean_meu6z3__WebLogic_CMP_RDBMS.__WL_loadGroup0FromRS(ProductBean_meu6z3__WebLogic_
    CMP_RDBMS.java:3081)
    with thin driver everything was fine ....
    any suggestions?
    thx chris

    Have you tried simply running oracle's thick driver? Our driver relies on OCI's
    string representation of the data, to feed to the constructor for BigDecimal,
    and I fear that OCI may be serving up a value in scientific notation, which
    the BigDecimal constructor chokes on. The reason our driver does that is because the
    metadata that the DBMS sends is insufficient for us to know what object to construct
    from the value (it could change every row!). Oracle's drivers make a BigDecimal
    natively for every numeric datum...
    Joe
    chris wrote:
    hi all,
    i am trying to migrate an application to fat oci oracle drivers.
    when using thin drivers there was never a problem but prformance was low.... (maybe
    not well programmed?) but nevertheless i migrated somappliactions to fat drivers
    and it was a whaoooo effect they performed a lot better so i decided to migrate
    anything possibe to fat till this day....
    when i sarted this censoed application in the wls 7 server i always got nuberformatexception
    i think when the appliaction tried to parse float values from the database
    following error ocured with 9.xx and 8.xxx oracle fat driver
    ####<
    69:e9e6dc1becbcab34> <010051> <EJB Exception during invocation from home: j2ee.ProductSearchSessionBean_ae
    teip_HomeImpl@29a747 threw exception: javax.ejb.EJBException: nested exception
    is: javax.ejb.FinderException: Exception executing fi
    nder 'findActiveByProductTypeIDApplicationIDExternalProdType':
    java.sql.SQLException: java.lang.NumberFormatException: ,2
    at java.lang.Integer.parseInt(Integer.java:409)
    at java.math.BigInteger.<init>(BigInteger.java:311)
    at java.math.BigInteger.<init>(BigInteger.java:440)
    at java.math.BigDecimal.<init>(BigDecimal.java:153)
    at weblogic.jdbc.oci.ResultSet.getBigDecimal(ResultSet.java:1074)
    at weblogic.jdbc.jts.ResultSet.getBigDecimal(ResultSet.java:703)
    at at.sybase.j2ee.com.shop.ejb.ProductBean_meu6z3__WebLogic_CMP_RDBMS.__WL_loadGroup0FromRS(ProductBean_meu6z3__WebLogic_
    CMP_RDBMS.java:3081)
    with thin driver everything was fine ....
    any suggestions?
    thx chris

  • Thin & Thick Client - Update UI on a data change in server.

    Hello friends -
    I need to develop a application. It has both Thin(Web) & Thick client(Swing/SWT). Both clients display some table information. Table information is collected from many different datasources.
    Problem: How to update both Thin & Thick clients on a data updation. There might be 10K+ users accessing the server for this table information, either through Web browser or Java thick client (Swing/SWT). And every sec, data is updated in the database (there will be atleast 100 messages /sec updating the datasources). Web clients need to poll to get the update. And Thick clients need to be notified of data change by the server.
    Is there any (open source) framework available to achieve this. I have some thoughts for this, but would like to know is there is any proven architecture available for this kind of problem.
    Thanks.

    Those update rates are pretty low for a typical JMS system, so you should be fine with most decent JMS providers.
    For the thing clients you could consider using Ajax to avoid unnecessary database polling by large numbers of clients...
    http://activemq.org/Ajax
    James
    http://logicblaze.com/

Maybe you are looking for