Top Banner

of 13

Php Oracle Connection Magazine Reprint

Apr 05, 2018

Download

Documents

Béla Pájer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/31/2019 Php Oracle Connection Magazine Reprint

    1/13

    4.07

    Cutting-Edge Technologies for Web Professionals

    The Oracle PHP ConnectionHow to Get Well Connected and

    What the Future Holds Once You Are

    PHP Databases Special

    MaxDB on the Web with PHPAn Introduction to the MaxDB PHP Interface

    Slony Replication by ExampleBuilding the Slony Cluster

    Ruling the Turf with PHP and IBM DatabasesCapitalize on the Best of Both Worlds

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    2/132 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7

    Table of Contents

    www.php-mag.net

    06 Whats New in the PHP Community

    23 Slony Replication by Example

    Building the Slony ClusterThe ability o providing copies among instances o the

    database engine is known as replication. This article talks

    about Slony, which is the most popular orm o master-

    slave replication used on PostgreSQL today.

    by Robert Bernier

    05 The Oracle PHP Connection

    How to Get Well Connected and What

    the Future Holds Once You AreIn this article we take a look the connection methods

    used or PHP and Oracle database using the PHP OCI8

    extension. Specifcally we cover non-persistent and

    persistent connections while oering some suggestions

    or choosing the right approach. In addition we will cover

    some upcoming eatures in the next major release o the

    Oracle database to signifcantly improve scalability o

    PHP applications.

    by Richard Rendell

    PHP Databases Specia

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    3/133 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7

    April 2007 Issue

    16 MaxDB on the Web with PHP

    An Introduction to the MaxDB

    PHP InterfaceThe article presents an introduction to working with

    the PHP interace rom MaxDB. It is intended or PHP

    users and developers already amiliar with the use o PHP

    extensions and, perhaps, with MaxDB itsel. This article

    tells you what you need to install MaxDB PHP, how

    you can use its eatures and how you can convert your

    MySQL applications to MaxDB PHP.

    by Thomas Simenec

    37 Ruling the Turf with PHP

    and IBM Databases

    Capitalize on the Best of Both WorldsWith the release o ibm_db2, PDO_IBM, and PDO_

    INFORMIX extensions, IBM has provided a simple

    to use, high perorming, and very stable database

    connectivity layer to the PHP community. The article

    attempts to highlight the IBM value proposition and

    provides a perspective straight rom the gatekeepers

    o these oerings to enable development o robust,

    enterprise class web applications using PHP and IBMdatabases.

    by Srini Bhagavan, Kellen Bombardier

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    4/13

    ant to Sponsor/Exhibit?

    mail: [email protected]

    one: +91 80 411 24 392/3

    R

    THIS YEARS MUST ATTEND FOR IT PROFESSIONALSThree Conferences In One Package. Cutting-edge Sessions Delivered byCommunity and Industry Luminaries.

    Venue :

    Date :

    National Science Symposium Centre, IISc, Bangalore, India

    28-31 May 2007

    %*4$07&35)&108&30'5)3&&*/0/&

    XXXKBYJOEJBDPN

    Presents

    Media Sponsors

    YOUR RIGHT TO INFORMATION TECHNOLOGY

    Platinum Sponsor Gold Sponsor

    http://www.sda-india.com/conferences/jax-india/http://www.eacon-india.com/http://www.eclipseforumindia.com/http://www.sda-india.com/conferences/jax-india/
  • 7/31/2019 Php Oracle Connection Magazine Reprint

    5/13

    The Oracle PHP Connection PHP Databases Special

    I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 5

    PHP applications o all types and sizes are being built

    using the Oracle database. Using the ree Oracle Express

    Edition (XE) and the equally ree SQL Developer or

    JDeveloper, getting up and going with Oracle has never been

    more accessible--or cheaper! Whether you are building aprototype, or a business critical PHP application the initial

    step to using all that database technology is to connect to

    it. The choice o connection method and how you manage

    database connections in the PHP application can have a

    dramatic eect on perormance. So here we will explore

    the ways in which you can connect to an Oracle database

    rom your PHP application, including the types o Oracle

    connections, environment variables and semantics o each

    connection method. Finally we will take a look at scalability

    o PHP applications and the Oracle connection pooling

    approach specifcally developed to increase perormance o

    multi-process clients such as PHP.

    OverviewWhen I initially got involved in our PHP eorts one o the

    most interesting aspects was discovering what customers

    were actually doing with PHP and Oracle. Customers were

    showing us their wow actor with Oracle and PHP long

    beore well, those other wow guys. Heres just some o

    The Oracle PHP Connection

    By Richard Rendell

    In this article we take a look the connection methods

    used or PHP and Oracle database using the PHP OCI8

    extension. Specifcally we cover non-persistent and

    persistent connections while oering some suggestions

    or choosing the right approach. In addition we will coversome upcoming eatures in the next major release o the

    Oracle database to signifcantly improve scalability o PHP

    applications.

    How to Get Well Connected and Whatthe Future Holds Once You Are

    the categories and types o PHP applications our customers

    are building using the Oracle database:

    Enterprise portals

    Content and Records ManagementTrading and web commerce

    Multimedia

    Spatial

    OLAP and Business Intelligence

    Lie Sciences

    Pharmaceuticals

    Education

    Data warehousing and mining

    Some o these applications contain over a million lines o

    PHP code and at least as many users. Also, several open source

    projects have chosen to add Oracle as a supported database. Mostrecently the olks at Drupal were kind enough to write about

    their experiences doing exactly that in the Oradrup project [1].

    Since this article is on PHP connections toOracle databases, an exposure to PHP andthe PHP OCI8 extension is desirable.

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    6/13

    PHP Databases Special The Oracle PHP Connection

    6 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7

    .......Common to all these PHP applications is the need to connect

    to the Oracle database in a high-perormance and scalable way.

    Many o these applications are business critical and need to

    service thousands o users in a very short time period so the

    question o scalability is never too ar away. In certain cases

    the scalability o PHP and Oracle could use some improvement

    and we have responded to those customers with some new

    unctionality around connection pooling scheduled or the next

    major database release. More on that later. For now, lets begin

    by looking at the connection methods and explaining what we

    have today beore introducing the new stu.

    Types of Oracle ConnectionThere are basically three ways to connect to an Oracle

    database rom a PHP application; all routines are contained in

    the PHP OCI8 extension:

    A standard connection

    Unique connections

    Persistent connections

    Lets take a look at them.

    Standard ConnectionsFor basic connection to Oracle use PHPs oci_connect()

    unction. You can call oci_connect() more than once in a script.

    I you do this and use the same username and database name,

    then you get a pointer to the original connection.

    $c = oci_connect($username, $password, $dbname);

    Multiple Unique ConnectionsTo get a totally independent connection use oci_new_

    connect() unction. Each connection is separate rom any other.

    This lets you have more than one database session open at the

    same time. This can be useul when you want to do database

    operations independently rom each other.

    $c = oci_new_connect($username, $password, $dbname);

    Persistent Connections

    Persistent connections can be made with oci_pconnect()unction. Persistent connections are not automatically closed

    at the end o a PHP script and remain open or reuse in other

    scripts. This makes them ast. Limits on the number o persistent

    connections can be set, and connections can be automatically

    expired to ree up resources. The parameters or tuning persistent

    connections are discussed later.

    $c = oci_pconnect($username, $password, $dbname);

    Oracle Database Name Connection StringsThe $dbname connection string in the earlier examples

    is the name o the database that you want to attach to.It can be local or remote. Having an invalid connection

    string can lead to the Oracle error: ORA-12514 TNS:

    listener does not currently know o service requested in

    connect descriptor.

    The database name can be defned in one o the ollowing

    ways:

    Oracle is proposing enhancements tothe open source PHP OCI8 extensionso that PHP can leverage the poolingfunctionality. The OCI8 extension would

    be modified to use the DRCP by gettingconnections from the pool and releasingthe connection at the end of the script orwhen the connection is not in use by theapplication.

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    7/13

    The Oracle PHP Connection PHP Databases Special

    I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 7

    An Easy Connect string

    A ull connection string

    A database alias

    Easy Connect stringThe Easy Connect method isas its name suggesteasy,

    especially when compared to the other methods. I you are

    running Oracle XE on the same machine as the PHP-enabled

    web server, you could connect to the HR schema with:

    $c=oci_connect(hr,hr_password, //localhost/XE);

    The Easy Connect string is a JDBC-like syntax: [//]hostname[:

    port][/service_name]

    The port deaults to Oracles standard port, 1521. The

    service_name deaults to the same name as the host computer.The // prefx is part o the syntax and is not a PHP line

    comment.

    You can use this syntax to connect to Oracle8i, Oracle9i

    and Oracle10g databases as long as PHP is linked with Oracle

    10g libraries. Zend Core or Oracle uses the appropriate Oracle

    libraries. More inormation on the Easy Connect syntax can be

    ound at:

    http://download-west.oracle.com/docs/cd/B19306_01/

    network.102/b14212/naming.htm.

    Full Database Connection StringThe second method o defning a database name is using a

    ull Oracle Net connection string, that gives total exibility overthe connection. See Listing. 1

    When in doubt, you can copy the connection string used by

    other Oracle tools and users i you have access to them. The

    syntax can be more complex than the example in Listing 1,

    depending on the database and Oracle Net eatures used. For

    example, by using the ull syntax, you can enable Oracle Net

    eatures like load balancing and tweak packet sizes. The Easy

    Connect syntax doesnt allow this exibility.

    Database AliasThe third option is to store the ull connection string in a fle

    called tnsnames.ora and reer to it in PHP using an alias. See

    Listing 2.

    In PHP you would use the alias MYA to connect to the

    database:

    $c = oci_connect($username, $password, MYA);

    PHP needs to be able to fnd the tnsnames.ora fle to resolve

    the MYA alias. The directory paths that Oracle searches or

    tnsnames.ora depend on your operating system. The search pathalways includes the directory specifed by the TNS_ADMIN

    environment variable and a deault location.

    In a standard install the deault tnsnames.ora is in:

    $ORACLE_HOME/network/admin/tnsnames.ora

    In Oracle XE or example, $ORACLE_HOME is in:

    /usr/lib/oracle/xe/app/oracle/product/10.2.0/server

    .....I you have compiled PHP yoursel and are running it

    with the Oracle libraries in a standard install, then you wouldtypically have ORACLE_HOME set and the deault tnsnames.ora

    # tnsnames.oraMYA = (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521))

    (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MYDB.MYDOMAIN)))

    Listing 2: Entry in tnsnames.ora file

    $db = (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = myhost.mydomain)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MYDB.MYDOMAIN)));

    $c = oci_connect($username, $password, $db);

    Listing 1: Full Oracle Net connection string

    Note: Do not set environment variables in

    a PHP script with putenv(). It causes hard totrack errors as the behavior is not consistentfor all OCI8 functions.

    http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.http://download-west.oracle.com/docs/cd/B19306_01/network.102/b14212/naming.htm.
  • 7/31/2019 Php Oracle Connection Magazine Reprint

    8/13

    PHP Databases Special The Oracle PHP Connection

    8 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7

    fle will automatically be ound without needing to set TNS_

    ADMIN.

    In Zend Core or Oracle, the ORACLE_HOME variable

    is generally not set when Apache starts, so the deault fle will

    not be ound. Instead, set the TNS_ADMIN variable.

    Oracle Environment Variables forConnections

    I you need to change Oracle environment settings like the

    language and territory conventions, or are confguring and

    building PHP yoursel, you will need to set some environment

    variables in the shell that starts the web server. The OCI8

    extension always needs to fnd Oracle libraries and message

    fles. Not fnding the fles can lead to errors like Error while

    trying to retrieve text or error ORA-12154. This message

    means that an error ORA-12154 occurred (which is one

    problem, in this case a connection problem). It also means that

    OCI8 couldnt even fnd Oracles message fles to get the text

    describing the error (a second problem). The solution or both

    problems is oten the same--to set the environment correctly.

    Another potential source o problems is having multiple

    installations o Oracle. Finding mismatched versions o

    Oracle libraries and fles can lead to PHP returning the

    Oracle error ORA-12705: Cannot access NLS data flesor invalid environment specifed. The bottom line is that

    your environment should be set correctly and consistently.

    Environment variables must be set in the shell that starts

    Apache so when the OCI8 extension is frst loaded it has access

    to the correct values.

    To connect to a remote database, or when PHP is linking

    with ORACLE_HOME binaries, you may need some or all o the

    ollowing environment variables to be set:

    ORACLE_HOME

    ORACLE_SID

    LD_LIBRARY_PATHNLS_LANG

    TNS_ADMIN

    The NLS_LANG and TNS_ADMIN variables are most likely to

    be required or Zend Core or Oracle. Zend Core or Oracle

    modifes apachectl and adds LD_LIBRARY_PATH. (This may not be

    required in a uture version o Zend Core or Oracle i Oracle

    links the Instant Client dierently). This allows the Zend Core

    or Oracle GUI Console to be reused to start Apache.

    I you are using a tnsnames.ora fle and speciy network aliases

    or the connection string with Zend Core or Oracle, you may

    need to do something similar with TNS_ADMIN so the Zend

    Core or Oracle Console can restart Apache correctly. I you

    start Apache manually, set the environment in a calling script

    (see Listing 3).

    This example assumes /usr/local/apache/conf/tnsnames.oraexists.

    TNS_ADMIN points to the directory containing the tnsnames.

    ora fle. You may come across connections that do not speciy a

    connection string:

    $c = oci_connect($username, $password);

    This works when ORACLE_SID is set to a local database on

    the host running PHP. I you confgure PHP yoursel and have

    problems, check the output rom the phpinfo() unction. Look at

    the Environment section and make sure the Oracle variables are

    set to the values you expect.

    Closing Oracle ConnectionsAt the end o each script, connections opened with oci_

    connect() or oci_new_connect() are automatically closed. You can

    also explicitly close them at any time by calling:

    oci_close($c);

    Any uncommitted data is rolled back. I a long running

    script only spends a small amount o time interacting with the

    database, you may want to close connections to ree resources

    or other users.

    #!/bin/sh

    TNS_ADMIN=/usr/local/apache/conf

    export TNS_ADMINecho Starting Apache#export > /tmp/envvars/usr/local/apache/bin/apachectl start

    Listing 3: start_apache.sh

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    9/13

    The Oracle PHP Connection PHP Databases Special

    I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 9

    Connections opened with oci_pconnect() will not be closed by

    oci_close(). This is similar to the way persistent resources work in

    other PHP extensions. Idle persistent connections can be set to

    expire.

    The oci_close() unction was a no-op prior to the re-

    actoring o OCI8. That is, it had no unctional code, and didnot actually close a connection. You could not explicitly close

    connections even i you wanted to! This has now changed, but

    you can revert to the old behavior i necessary with this php.

    ini setting:

    oci8.old_oci_close_semantics = 1

    Semantically, oci_close() works by reerence counting.

    Only when all reerences to the PHP connection are

    inished will the database connection actually be closed. In

    this example $c1 and $c2 are the one database connection

    (because oci_connect returns the same connection resourcewhen called more than once in a script), but only at the

    end o script is the database connection really closed. See

    Listing 4.

    In Listing 4, the second query ails, but the third succeeds.

    Although the reerence counting algorithm keeps the database

    connection physically open, the connection resource in $c1 is

    not usable ater oci_close ($c1) is executed.

    Connection Management inScalable Systems

    Oracle achieves its well-known scalability in part through amulti-threaded architecture. PHP instead has a multi-process

    architecture. This dierence means care is required when

    designing scalable applications.

    Using persistent connections is common or web sites that

    have high numbers o connections being established. Reusing

    a previously opened connection is signifcantly aster than

    opening a resh one. Large sites should benchmark persistent

    PHP connections and Oracle Shared Servers also known as

    Multi Threaded Servers (MTS). Shared Servers reduce the

    numbers o processes needed to handle database requests.

    Make sure that you understand the lietime o your

    applications connections. Reuse connections where possible,

    but dont be araid to create new connections and close them

    as needed. Each connection will take some Oracle memory, so

    overall load can be reduced i idle connections are closed with

    Apache process timeouts or with the php.ini parameters to

    expire persistent connections.

    For sites with hundreds o connections a second, tune the

    cache size o an internal sequence generator, sys.audses$. A

    starting point is to change it to perhaps 10000:

    SQL> alter sequence sys.audses$ cache 10000;

    This is also recommended i you are using Oracle RAC

    (Real Application Clusters).

    With Oracle RAC you can adjust the algorithm that decides

    which Oracle node handles each new connection. Set the listener.

    ora parameter

    PREFER_LEAST_LOADED_NODE_ to OFF to use

    session based load balancing.

    This is documented in Note 220970.1 on Oracles Metalink

    support site.

    Session-based load balancing takes into account the number

    o sessions connected to each node and then distributes new

    connections to balance the number o sessions across the

    dierent nodes. This can help when there is a connection storm

    Listing 4: close.php

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    10/13

    PHP Databases Special The Oracle PHP Connection

    10 I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7

    and the normal allocation metrics do not get a chance to get

    updated ast enough. For both RAC and non-RAC database,

    the DBMS_SERVICE package lets you speciy workloadmanagement goals. This is a detailed topic; reer to Oracles

    manuals or more inormation. Finally, make sure that your

    applications are as efcient as possible, which should minimize

    the length o time connections are held.

    Now that pretty much covers the best practices with

    current technology, but to scale perormance beyond what we

    have today or multi-process clients like PHP, Oracle is adding

    a server side connection pool, which will manage a pool o

    active connections ready to go.

    Pooling Software ObjectsIn general pooling objects is an optimization that is widely

    adopted in many scenarios. Pooling an object makes sense i

    the object is:

    Required or a relatively short duration

    Expensive to create every time it is required

    Expensive to tear down when not required

    Expensive to maintain all the time (even when not required)

    because it consumes resources

    Pooling such objects enables the user that needs the objectto quickly access it rom the pool and release it back when the

    object is not required, thereby enabling other users to reuse

    the pooled object. This typically improves system perormance

    dramatically.

    Pooling Database ConnectionsDatabase connections generally satisy all o the earlier

    mentioned criteria. Database connection establishment

    involves creation o the network connection, spawning an

    associated operating system process/thread, perorming the

    requisite authentication, creation o the session involving

    session private contexts or SQL statement, and so on. Tearingdown database connections is also expensive. And needless to

    state that unnecessarily maintaining them when not required

    just eats up precious resources on the database server. That

    explains why database connection pooling greatly helps high

    trafc web applications where connections are needed or

    short durations. Most multithreaded systems that talk to a

    database oer some orm o database connection pooling.

    Currently PHP Apache processes, being single threaded,

    are unable to pool opened database connections, each process

    uses its own connection. PHP users are let with two options

    either repeatedly create and tear down the connection or keep

    the connection around. The ormer option is typically called

    non-persistent connections and the latter is called persistent

    connections. Neither o these options really achieves pooling.

    Oracle Database ResidentConnection Pooling

    The next major release o Oracle will have support or

    Database Resident Connection Pooling (DRCP) that perorms

    pooling on the database side. We announced this eature at

    Oracle OpenWorld in 2006. This allows process-oriented

    architectures such as PHP to take advantage o database

    Richard Rendell is Senior Director o ProductDevelopment in the Linux Engineering division andis responsible or PHP activities at Oracle. Richardhas worked at Oracle or over 17 years occupying arange o positions in sotware development, businessdevelopment, product management, consulting andeducation. Richard established Oracles AustralianProduct Development Center in 1992 initially takingresponsibility or SQL*Plus which is now amongseveral products developed at the Australian Center.With a ocus on open source or the last 6 years histeams have delivered the JDeveloper PHP extensionand co-led the Zend Core or Oracle project with AndiGutmans at Zend.

  • 7/31/2019 Php Oracle Connection Magazine Reprint

    11/13

    The Oracle PHP Connection PHP Databases Special

    I n t e r n a t i o n a l P H P M a g a z i n e 0 4 . 2 0 0 7 11

    connection pooling in the absence o a middle tier connection

    pooling process. Since DRCP is server side unctionality, it can

    be leveraged across middle tier processes and middle tier boxesby all clients that want pooling o database connections. That

    will allow very high trafc web sites to scale better and the cool

    thing about the Oracle DRCP eature is that it is not just limited

    to PHPany database client could use it.

    DBA View of DRCPThe DRCP is optionally enabled by the DBA on the database

    side. The DRCP is confgured by speciying the minimum and

    maximum number o connections allowed. The DBA can also

    confgure inactivity timeout settings and speciy the number o

    cursors to be cached per connection. All o this is achieved by

    calls to a new PL/SQL connection pool package. Starting the

    pool brings up the minimum number o pooled connections and

    DRCP dynamically sizes the number o connections in response

    to load. There will be some DBA views available or monitoring

    DRCP activity and perormance as well.

    Client Side View of DRCPOn the client side, the client needs to speciy :POOLED

    in the Easy Connect string that directs the client to the pool

    instead o getting a dedicated server connection:

    hostname:port/service:POOLED

    For users who use TNS style connect strings, there is an

    equivalent option:

    (SERVER=POOLED)

    All clients connecting as a certain user; or example, SCOTT

    can then share other SCOTT connections rom the pool.

    At the Oracle C interace level, there is an additional

    parameter called connection_class that allows or urther sub-

    pools within a users pool. This allows or separation o distinctapplications that may connect as the same user to the database.

    The connection_class can be specifed programmatically in the

    OCI connect calls.

    PHP User View of DRCPOracle is proposing enhancements to the open source

    PHP OCI8 extension so that PHP can leverage the pooling

    unctionality. The OCI8 extension would be modifed to use the

    DRCP by getting connections rom the pool and releasing the

    connection at the end o the script or when the connection isnot in use by the application. For example the oci_pconnect()

    call will get the connection rom the DRCP and an explicit or

    implicit indication that the connection is not in use will release

    the connection back to the pool.

    The proposal includes an additional php.ini setting that

    allows or identifcation o all Apache servers that run the same

    application:

    oci8.connection_class=NAME

    This allows Apache instances to share connections rom

    the same sub-pool on the database side, thereby achieving

    pooling across middle tier instances. The aim is to provide the

    connection pooling advantages with minimal confguration on

    the PHP side.

    More InformationFor more inormation on the proposed oci8 changes, or i

    anyone is interested in contributing to the oci8 enhancements

    or specifcation, please contact either mysel at richard.rendell@

    oracle.com or Christopher Jones at christopher.jones@oracle.

    com.

    ConclusionConnecting to the Oracle database and maintaining high-

    perormance connections is critical to high trafc web sites and

    business critical PHP applications. Through eedback rom our

    customers and developers Oracle is creating a highly scalable

    architecture or multi-process clients such as PHP. We sincerely

    appreciate the eorts o all who have helped defne and

    refne this unctionality. I would especially like to thank Luxi

    Chidambaran and the Oracle OCI development team or their

    long-standing support o PHP and development o the DRCP

    architecture. Look or urther announcements at the next major

    release o the database.

    Resources & References

    [1] http://www.oracle.com/technology/pub/articles/pedros-drupal.html

    Oracle Technology Network: http://www.oracle.com/technology[2] Oracle 10g Release 2 Documentation:http://www.oracle.com/technology/

    documentation/database10gr2.html

    [3] Oracle PHP Developer Center: http://www.oracle.com/technology/tech/php/index.html

    http://www.oracle.com/technology/pub/articles/pedros-drupal.htmlhttp://www.oracle.com/technology/pub/articles/pedros-drupal.htmlhttp://www.oracle.com/technologyhttp://www.oracle.com/technologyhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://%20http//www.oracle.com/technology/tech/php/index.htmlhttp://www.oracle.com/technology/documentation/database10gr2.htmlhttp://www.oracle.com/technologyhttp://www.oracle.com/technology/pub/articles/pedros-drupal.html
  • 7/31/2019 Php Oracle Connection Magazine Reprint

    12/13

    $POGFSFODFGPSUIF/FYU(F

    OFSBUJPO8FC

    Webinale07

    TheNextGenerationWebisaboutgetti

    ng

    associatedwithopenness,trust,authen

    ticity

    andcollaboration.Interactivity,new

    possibilitiestoconnect,socialsoftware,

    usability,andcommunitynet

    workingarefast

    catchingupwithusers.Thisnewbuzzis

    generatingfreshandexcitingprojects.Th

    e

    latestbuzzwordisWeb2.0,andtheeven

    t

    foranyoneseekingtostayontopofthis

    buzzisWebinale2.0!

    Areyouinadilemmafindingsolutionsto

    yourquestions?WheredoIfindspecific

    perspectivessansthehype?Whatareth

    e

    possiblemethodologiesandhowcanI

    implementtheminmyprojects?Whocan

    showmehowtousetheopportunitiesan

    d

    solvetheproblems?Whatdoesthefutu

    reof

    theWorldWideWeb(WWW)loo

    kslike?

    WhichpartsofthisBuzzarejustgadgets

    thatcannotpersistineverydayreality?

    Webinale07istransferringtheknowledg

    e

    fortheNextGenerationWeb!Findyour

    answershere!Becomepartofthe

    movementandgatheralltheinformation

    youneedtobecomesuccessfulontheW

    eb

    2.0platform.

    FocusAreas

    Webinale07providesconcreteperspectiveso

    n:

    AJAXinAct

    WebSecurity

    WebBusiness

    WebKnow-how

    EnterpriseBusiness

    webinale07willdisseminatebusinessandtechnical

    know-howrelatedtoWebdevelopment,Desig

    n,

    Optimization,andWebSecurity,besidesinfor

    mative

    sessionsonhowtoefficientlymarketWebsite

    s.

    webinale07offersanumberofparallelsessio

    nsfor

    youtochoosefrom.Italsoprovidesample

    opportunitiesforexchangeofideas,networkin

    gand

    stayingabreastwiththelatesttrendsontheW

    eb!

    Thetopicsinwebinale07are

    relevantto:

    DevelopersDesigners

    ProjectManagers

    OnlineMarketingStrategists

    webinale07ispositionedasaplatformthatw

    illenable

    theNextGenerationWebforyou.Top-notchs

    peakers

    whowillnotonlydemonstratethebestPractic

    es,but

    alsoguideyoualongthewaywilldelivercuttin

    g-edge

    sessions.Informationthatyougatheratwebin

    ale07

    willbemostrelevantforyourday-to-dayproje

    cts.

    InterestedinAdvertising,ExhibitingorSponsoring?

    Pleasevisitwebinale-asia.com

    Singapore,

    webinale-asia.com23-24 April 2007

    FOUR SERVICES.ONE SOURCE.

    'OLD3PONSOR

    http://www.webinale-asia.com/http://www.webinale-asia.com/http://www.webinale-asia.com/http://www.webinale-asia.com/
  • 7/31/2019 Php Oracle Connection Magazine Reprint

    13/13

    9OUCANALSOVISITHTTPWWWIMPIGERTECHCOM

    WIZARD

    WHERE DO YOU WANT TO

    MEET YOUR CUSTOMER?

    S&S MediaCHAMPIONING CROSS MEDIA COMMUNICATION

    S&S MEDIA PTE LTD

    .%7"2)$'%2/!$#().!4/7.0/).4

    3).'!0/2%

    TEL:-!).,).%FAX:

    E-MAIL:ADVERTISESDAASIACOM

    WebSite:WWWSOFTWARESUPPORTMEDIASG

    Software & Support Verlag GmbH

    'ELEITSSTRAE

    &RANKFURTAM-AIN'ERMANY

    Phone:Fax:

    E-mail:SDAASIASOFTWARESUPPORTBIZ

    Website:WWWSOFTWARESUPPORTBIZ

    S&S Media

    -%.!2!+!$).).$/.%3)!

    *!+!24!).$/.%3)!

    Phone: Fax:

    E-mail:CONTACTUSMEDIATICOIDWebSite:WWWMEDIATICOID

    S&S Media

    )&,//202)-2/3%2/!$

    "!.'!,/2%

    Off: &AX

    E-mail:EDITORSSDAINDIACOM

    WebSite:WWWSOFTWARESUPPORTMEDIAIN

    FOUR SERVICES. ONE SOURCE.

    S&SMedia

    Print(Magazine)

    CustomEvents

    BrandedConference

    Online

    http://www.softwaresupportmedia.in/mailto:[email protected]:[email protected]://www.softwaresupportmedia.sg/http://www.softwaresupportmedia.sg/mailto:[email protected]:[email protected]://www.software-support.biz/http://www.software-support.biz/mailto:[email protected]:[email protected]:[email protected]://www.media-ti.co.id/http://www.media-ti.co.id/mailto:[email protected]:[email protected]:[email protected]://www.softwaresupportmedia.in/http://www.softwaresupportmedia.in/http://www.media-ti.co.id/mailto:[email protected]://www.softwaresupportmedia.in/mailto:[email protected]://www.softwaresupportmedia.sg/mailto:[email protected]://www.software-support.biz/mailto:[email protected]