Performance of SQLJ vs.JDBC

Performance of SQLJ vs JDBC
Hi.
I have a method (writen in SQLJ) containing SQL INSERT statemenmt. As I understand it - each time I invoke that method inside loop PreparedStatement object is created, parsed, executed and released.
With JDBC I'm able to create and parse only once for the whole loop.
Is it possible to do the same with SQLJ or I would have to re-write the code?
TIA. Michael

Rewrite. SQLJ slower than JDBC in times.

Similar Messages

  • Performance difference between sqlj and jdbc

    hi:
    i am working with a project and i have to generate text files
    from database . first i am working with pl/sql, but i am not so
    satisfied with the performance. so i turn to java stored procedure. I have two choice sqlj and jdbc when accessing
    database? which performs better? sqlj or jdbc? or there's only
    little difference.
    And would u like to give me some other choice to run faster.
    maybe pro*c/c++ is a choice . but if it can't run much faster ,
    it's not a better choice.
    regards

    Since you don't play games, you'll notice a difference in graphic and video applications that are GPU accelerated, like Motion, and Photoshop CS4 & 5.

  • SQLJ or JDBC

    I have asked this question in the SQLJ JDBC forum but since nobody answers me I try here instead:
    Could you point me to some good resources (white papers) where I can read about performance issues when choosing between SQLJ and JDBC?
    I assume this is a rather general question, but I have to come up with a precise answer. This system is limited by a large number of inserts into Oracle, but the SQL statements are not complicated.
    Regards
    Flemming

    Not knowing exactly, but I guess, that there is no real difference between SQLJ and JSBC concerning performance. SQLJ is just a precompiler which translates SQLJ-Statements into JDBC API-calls. So both are basically the same. Most probably the limiting part will be the database, which has to execute all of the INSERT-statemens you mentioned.

  • SQLJ -codegen=jdbc

    What is the difference between the -codegen=oracle and -codegen=jdbc options of Oracle SQLJ? Will there be any performance benifit for -codegen=jdbc over -codegen=iso?

    Based on the above mentioned stack it looks like the sqlj program is being compiled in codegen=oracle mode. As can be seen in the below three lines.
    sqlj.runtime.ref.ConnectionContextImpl.getOracleConnection(ConnectionContextImpl.java:149)
    sqlj.runtime.ExecutionContext$OracleContext.prepareOracleCall(ExecutionContext.java:1507)
    adaptech.model.karibu.pusua.Pusua.existe(Pusua.sqlj:74)
    The generated client program is calling ExecutionContext.OracleContext.prepareOracleCall directly. This would be seen only with codegen=oracle and not with codegen=iso.
    Also, please do check if you have ojdbc14.jar or classes12.jar as part of the classpath at the time of execution of the program.

  • Sqlj and jdbc for linux

    Hi All,
    I am currently set up the (tomcat) jsp engine on top of apache web server.
    And now i would like to install both sqlj and a jdbc driver such
    that I can query our oracle database. In all of the options for downloads
    there is a windoze option and a solaris option. Do I have to wait for specific
    "linux" version to get them to work. Or is the solaris option alright
    for linux ??
    slightly confused,
    Chris

    Unfortunately, this description is still rather unspecific.
    It sounds, as if there might be an issue with the way database connections are established for the SQLJ and JDBC parts of your program. Could you provide more information on that, specifically on how you obtain JDBC connections and SQLJ connection contexts.

  • Sqlj and jdbc in a single program causing problems

    I am using both sqlj and jdbc in a single program(servlets) but after insatiaitng this program my other sqlj programs are not working while the JDBC pgms are working . Why is it so? How can I remedy it?

    Unfortunately, this description is still rather unspecific.
    It sounds, as if there might be an issue with the way database connections are established for the SQLJ and JDBC parts of your program. Could you provide more information on that, specifically on how you obtain JDBC connections and SQLJ connection contexts.

  • SQLJ vs JDBC vs stored procedur?People

    SQLJ vs JDBC vs stored procedur?
    What is used in the enterprise?
    What to study?

    SQLJ and JDBC are ways to access the database - from the client, from the middle tier, or from inside the database server itself.
    JDBC is an API specified by Sun as part of Java, while SQLJ is an ANSI (soon ISO) standard for embedding SQL in Java.
    JDBC is more widespread, while SQLJ is a more productive environment.
    Stored procedures are pieces of code executed in the database as part of your database session. In Oracle Databases, stored procedures are usually written either in PL/SQL (a propertietary Oracle language) or in Java. If you write your stored procedure in Java you use JDBC or SQLJ to access the database - essentially the same code you would write on the client or in a middle-tier.

  • Oracle SQLJ or JDBC ?

    Hi,
    I would like some advice. Have anyone used Oracle SQLJ instead of the JDBC ?
    What should I use ?
    I started with JDBC then someone told me about SQLJ and said it was more high level and therefore easier to use. What do you think ?
    Thanks

    It depends whether you need portability or not. JDBC will be portable across DBs whereas SQLJ feature is not. Also I would advise not to make portability a default requirement for any application as that shuts down a whole bunch of nice, performant solutions. Would recommend reading Rod johnson's J2EE expert one-on-one. Wrox crashed, so not sure book is available or not.
    -Sanjay

  • JAR files for SQLJ and JDBC drivers: what is the best practice?

    starting a migration from IAS 10 to WebLogic 11g.
    Apparently the jar files for SQLJ are not on the classpath by default.
    java.lang.NoClassDefFoundError: sqlj/runtime/ref/DefaultContextwhich is the better practice: putting the SQLJ runtime jar into the lib subdirectory of the domain directory, or using a shared library reference? (usage of SQLJ is pretty prevalent in our apps, though we may be getting away from it)
    are the Oracle JDBC drivers on the classpath by default?
    if not, then the same question: put them into the lib subdirectory of the domain directory, or use a shared library reference?

    I'm looking at the setDomainEnv, especially the big note at the top:
    >
    # WARNING: This file is created by the Configuration Wizard.
    # Any changes to this script may be lost when adding extensions to this configuration.
    >
    and am getting squeamish about editing it...
    http://www.bea-weblogic.com/how-do-i-disable-wls-automatically-adding-to-classpath.html looks like the default behaviour is for WebLogic to put $DOMAIN/lib;$WL_HOME/common/lib/ext;$WL_HOME/server/lib/ext on the classpath; there is also a reference to setting weblogic.ext.dirs= when starting weblogic (which means I set the WEBLOGIC_EXTENSION_DIRS environment variable).
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/libraries.html#wp1067450 also refers at the bottom to using the domain /lib subdirectory.
    so am I correct that a good practice is to just put the jars I think I will globally need into $DOMAIN/lib, rather than putting them in $WL_HOME/common/lib/ext, $WL_HOME/server/lib/ext, or fiddling with the WEBLOGIC_EXTENSION_DIRS environment variable?
    Edited by: user8652010 on Feb 10, 2011 1:08 PM

  • Major performance problem in weblogic jdbc

    I ran a test which selected ~1000 rows from an oracle database table. The
    code ran in 4 seconds when I used the Oracle driver directly:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection connection = DriverManager.getConnection(URL, "XXX", "XXX");
    When I changed the code to get the connection from weblogic, it took 128
    SECONDS!!!!
    weblogic.jdbc.connectionPool.pointclick=\
    url=jdbc:oracle:thin:@XXX:dev,\
    driver=oracle.jdbc.driver.OracleDriver,\
    initialCapacity=1,\
    maxCapacity=2,\
    capacityIncrement=1,\
    props=user=XXX;password=XXX
    weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.pointclick=pointclick
    Properties properties = new Properties();
    properties.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    Context context = new InitialContext(properties);
    try
    DataSource dataSource = (DataSource)context.lookup(NAME);
    Connection connection = dataSource.getConnection();
    // if(!autoCommit)
    // connection.setAutoCommit(false);
    return connection;
    finally
    context.close();
    The strangest thing is that when I used the weblogic pool, if I executed
    "select column from table" it took 128 seconds, but "select * from table"
    only took 32 seconds. Why would it take longer to process less data?
    And more importantly, why does the weblogic connection take so damn long?
    Thanks for your help.
    Sean Rohead

    Hey, I finally managed to get JDBC logging up and running! Had to do with
    permission setting, adding the following entry to weblogic.policy:
    permission java.sql.SQLPermission "setLog";
    Boy are you right; JDBC logging is slow as mud! Good thing we use BMP
    entity beans, so I guess I can log JDBC calls myself in the
    ejbCreate/Load/Store/Remove hooks!
    Gene Chuang
    Teach the world. Join Kiko!
    http://www.kiko.com/profile/join.jsp?refcode=TAF-gchuang
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    >
    >
    Gene Chuang wrote:
    Hey, I've tried setting weblogic.jdbc.enableLogFile=true before and
    can't
    even get the server to start up! Since JDBC logging is not only slow,but
    buggy,JDBC logging is slow for the reasons described, but not buggy as such.
    is there a possibility Weblogic can implement a JDBC log for a future
    release?
    Seems like Weblogic can catch SQL calls much easier than we can,
    especially for CMP!It is conceivable that our pool drivers (pool,jts,rmi etc) couldindependently
    log SQL for debugging purposes, but we need to retain the semantics ofturning
    on jdbc logging, which in any case will continue to emanate from any JDBCdriver.
    In any case, we wouldn't do anything differently that DriverManager doesfor
    simply writing to a file, which would be serialized by the stream anyway.
    Joe
    Gene Chuang
    Teach the world. Join Kiko!
    http://www.kiko.com/profile/join.jsp?refcode=TAF-gchuang
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    Sean Rohead wrote:
    OK, disregard everything I said in my last post. The REAL reason
    for
    the
    slowdown is that I had "weblogic.jdbc.enableLogFile=true" in my
    weblogic.properties. So, there is nothing wrong with the JNDIDataSource
    object. Sorry if I misled anyone.
    Still, it does seem rather excessive for logging to cause a 30Xslowdown.
    Someone at BEA ought to take a closer look at that...Known issue, not ours.
    JDBC logging collect anything logged by any JDBC driver or by anySQLException.
    These all call DriverManager.println() which is class synchronized in
    the
    JVM,
    so this will serialize most JDBC threads, and slow the server down a
    lot,
    independently of the disk I/O needed to grow the file.
    Joe
    Sean Rohead
    "Sean Rohead" <[email protected]> wrote in message
    news:[email protected]...
    Nice work, Charlie!
    When I just connected to the pool directly, it ran fine. I am
    guessing
    that
    the DataSource returns a connection that connects first to the
    server
    via
    RMI and then to the database. I am trying to obtain a JDBC
    connection
    for
    use in EJB and servlets, so this is clearly overkill. The
    question I
    now
    have is what is the best way to obtain a transactional
    connection
    without
    the overhead described above? Can I somehow create a
    transactional
    DataSource that doesn't go over RMI? Or, should I just use thejts
    driver
    directly? I tried the following code, but got an error:
    Driver driver = new weblogic.jdbc.jts.Driver();
    Properties properties = new Properties();
    properties.put("connectionPoolID", "pointclick");
    Connection connection = driver.connect("jdbc:weblogic:jts",properties);
    The error was:
    java.sql.SQLException: The url cannot be null
    atjava.sql.DriverManager.getConnection(DriverManager.java:434)
    atjava.sql.DriverManager.getConnection(DriverManager.java:106)
    at weblogic.jdbcbase.jts.Driver.connect(Driver.java:213)
    at
    pointclick.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:24)
    atpointclick.servlet.TestServlet.doGet(TestServlet.java:36)
    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    atjavax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :124)
    at
    weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
    l.java:744)
    at
    weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
    l.java:692)
    at
    weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
    Manager.java:251)
    at
    weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:363)
    at
    weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:263)
    atweblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    >>>>>
    >>>>>
    I copied the code above from
    http://www.weblogic.com/docs51/classdocs/jts_driver.html and there
    was
    no
    mention of setting any other properties. If I create the
    connection
    this
    way from an EJB, will it still participate in the transaction
    started
    by
    the
    EJB container?
    Sean Rohead
    "Charlie Crook" <[email protected]> wrote in message
    news:[email protected]...
    Your Oracle example is also using JNDI to obtain the connection;
    not
    just
    getting a connection from a pool. So you've actually changed 2conditions
    ( non-pool to pool, non-JNDI to JNDI ). So both of these should
    be
    considered as suspects for the performance.
    "Sean Rohead" <[email protected]> wrote in message
    news:[email protected]...
    I ran a test which selected ~1000 rows from an oracle database
    table.
    The
    code ran in 4 seconds when I used the Oracle driver directly:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection connection = DriverManager.getConnection(URL,
    "XXX",
    "XXX");
    When I changed the code to get the connection from weblogic,
    it
    took
    128
    SECONDS!!!!
    weblogic.jdbc.connectionPool.pointclick=\
    url=jdbc:oracle:thin:@XXX:dev,\
    driver=oracle.jdbc.driver.OracleDriver,\
    initialCapacity=1,\
    maxCapacity=2,\
    capacityIncrement=1,\
    props=user=XXX;password=XXX
    weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.pointclick=pointclick
    >>>>>>>
    >>>>>>>
    Properties properties = new Properties();
    properties.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    Context context = new InitialContext(properties);
    try
    DataSource dataSource = (DataSource)context.lookup(NAME);
    Connection connection = dataSource.getConnection();
    // if(!autoCommit)
    // connection.setAutoCommit(false);
    return connection;
    finally
    context.close();
    The strangest thing is that when I used the weblogic pool, ifI
    executed
    "select column from table" it took 128 seconds, but "select *
    from
    table"
    only took 32 seconds. Why would it take longer to process
    less
    data?
    And more importantly, why does the weblogic connection take sodamn
    long?
    Thanks for your help.
    Sean Rohead
    PS: Folks: BEA WebLogic is in S.F., and now has some entry-level
    positions
    for
    people who want to work with Java and E-Commerce infrastructure
    products.
    Send
    resumes to [email protected]
    The Weblogic Application Server from BEA
    JavaWorld Editor's Choice Award: Best Web Application Server
    Java Developer's Journal Editor's Choice Award: Best Web ApplicationServer
    Crossroads A-List Award: Rapid Application Development Tools for
    Java
    Intelligent Enterprise RealWare: Best Application Using a ComponentArchitecture
    http://www.bea.com/press/awards_weblogic.html
    PS: Folks: BEA WebLogic is in S.F., and now has some entry-level positionsfor
    people who want to work with Java and E-Commerce infrastructure products.Send
    resumes to [email protected]
    The Weblogic Application Server from BEA
    JavaWorld Editor's Choice Award: Best Web Application Server
    Java Developer's Journal Editor's Choice Award: Best Web ApplicationServer
    Crossroads A-List Award: Rapid Application Development Tools for Java
    Intelligent Enterprise RealWare: Best Application Using a ComponentArchitecture
    http://www.bea.com/press/awards_weblogic.html

  • Performance issue about using JDBC?

    Since no one reply me, I post again. :(
    I just got a big performance problem lately, and I tried all the possible ways, still can't fix it. Could you help me out or give me more suggestions?
    Oracle 8i for Solaris 2.6
    A web application with back end is Oracle database, developed by Java, use JDBC driver. It also uses Servelet. Report generated in browser is using dynamic SQL.
    When I click some link to generate report in browser, it will run the corresponding SQL script, then return the result to browser. The problem is it takes long long time to get the result. For simple query, it takes around 2-3 minutes. But if I run the same SQL script in
    SQL*Plus, it only takes 4-5 seconds, or even less. So I think the index for this query is fine. (I also rebuild all indices, some result.) And all the hit ratios in SGA are also OK. When browser generate reports, I didn't see high CPU usage or I/O activity.
    I really have no idea why this happens. But I think the Oracle DB is fine, 'cause query is run normally in SQL*Plus. The problem may related to the JDBC driver or JDBC connection. The developers also have no clue about this. When the Java app run the query, does it use the same way to access the tables and indexes as used in SQL*Plus?
    Any idea or suggestions?
    Thanks a lot and have a good day!
    null

    Thanks for all.
    So do you guys has any suggestion on the following code?
    DESCRIBE TABLE gt_vbeln LINES l_lines.
      IF l_lines = 0.
    ***>>Links20060411
    *  ELSEIF l_lines GT c_1000.
    *    SELECT vbelv posnv vbeln posnn vbtyp_n rfmng
    *        APPENDING TABLE gt_vbfa_all PACKAGE SIZE c_1000
    *        FROM vbfa
    *        FOR   ALL ENTRIES IN gt_vbeln
    *        WHERE vbelv   EQ  gt_vbeln-vbelv
    *          AND posnv   EQ gt_vbeln-posnv
    *          AND vbtyp_n IN ('T', 'J', 'R', 'h').
    *    ENDSELECT.
    *  ELSE.
    *    SELECT vbelv posnv vbeln posnn vbtyp_n rfmng
    *        INTO TABLE gt_vbfa_all FROM vbfa
    *        FOR   ALL ENTRIES IN gt_vbeln
    *        WHERE vbelv   EQ  gt_vbeln-vbelv
    *          AND posnv   EQ  gt_vbeln-posnv
    *          AND vbtyp_n IN ('T', 'J', 'R', 'h').
      ELSEIF l_lines > c_1000.
        SELECT vbelv posnv vbeln posnn vbtyp_n rfmng
            APPENDING TABLE gt_vbfa PACKAGE SIZE c_1000
            FROM vbfa
            FOR   ALL ENTRIES IN gt_vbeln
            WHERE vbelv   =  gt_vbeln-vbelv
              AND posnv   = gt_vbeln-posnv
              AND vbtyp_n IN ('T', 'J').
        ENDSELECT.
      ELSE.
        SELECT vbelv posnv vbeln posnn vbtyp_n rfmng
            INTO TABLE gt_vbfa FROM vbfa
            FOR   ALL ENTRIES IN gt_vbeln
            WHERE vbelv   =  gt_vbeln-vbelv
              AND posnv   =  gt_vbeln-posnv
              AND vbtyp_n IN ('T', 'J').
      ENDIF.
    Currently it runs timeout ,as the l_lines is very very large.
    I think maybe we  can change the package size. But what's the best package size for performance?
    Thanks..

  • Installation of SQLJ with JDBC

    I want to install SQLJ on Sun Unix machine and How to configer JDBC driver for Java programmer? Is the above things is sufficient to interact Java programmer with Oracle 8i database.
    Thanks
    null

    Follow the "Getting Started" section in the SQLJ User's Guide and Reference.
    You need:
    - a JDK (1.1.x or 1.2)
    - the Oracle JDBC driver distribution
    - the SQLJ distribution (translator.zip)
    null

  • Sqlj and JDBC test

    I installed JDK1.2.2, it works very well. I also installed
    JDBC7.3.4 and SQLJ7.3.4. After I compiled the
    TestInstallCreateTable.java, I run the class to get the following
    error messages. Can SQLJ7.3.4 work with the JDK1.2.2?
    Exception in thread "main" java.lang.UnsatisfiedLinkError:
    C:\ORAWIN95\BIN\oci73jdbc.dll: One of the library files needed to
    run this application cannot be found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at
    java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1319)
    at
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1243)
    at java.lang.Runtime.loadLibrary0(Runtime.java:470)
    at java.lang.System.loadLibrary(System.java:768)
    at
    oracle.jdbc.oci7.OCIDBAccess.logon(OCIDBAccess.java:138)
    at
    oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:
    93)
    at
    oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:146)
    at
    java.sql.DriverManager.getConnection(DriverManager.java:457)
    at
    java.sql.DriverManager.getConnection(DriverManager.java:137)
    at
    sqlj.runtime.ref.ConnectionContextImpl.<init>(ConnectionContextIm
    pl.
    ava:102)
    at
    sqlj.runtime.ref.DefaultContext.<init>(DefaultContext.java:142)
    at
    oracle.sqlj.runtime.Oracle.getConnection(Oracle.java:501)
    null

    Thank you for your timely help. After setting up %JAVA_HOME%\lib\classes.zip in classpath, I am able to compile the .sqlj file. But I am not able to run. I get a java.lang.NoClassDefFoundError:oracle.sqlj.runtime.Oracle. I am able to see this class in the database, under Java classes. Kindly advice. Thanks in advance.

  • Performance hint: oracle's JDBC is full of trace(), OracleLog.print()

    When someone writes OracleLog.print("some stuff"+variable+"other stuff") or print(...), And even if the log mode is false, the VM would compute "the some tuff"+variable+"other stuff" before calling print() or trace().
    So like this :
    public synchronized Connection getConnection(String s, String s1)
    throws SQLException
    makeURL();
    trace("User us " + s + "URL is " + m_url);
    Connection connection = DriverManager.getConnection(m_url, s, s1);
    return connection;
    So I noticed that the oracle's JDBC code has many of these (I decompiled it:) even though most of the traces are between "if(OracleLog.TRACE)" which is fine.
    So you imagine that for a heavy OLTP application, oppening and closing connections very often (even with the cached data source, there are a lot of trace() without the "if(log)") leads to calling trace() often, without useless computing...
    Riad

    When someone writes OracleLog.print("some stuff"+variable+"other stuff") or print(...), And even if the log mode is false, the VM would compute "the some tuff"+variable+"other stuff" before calling print() or trace().
    So like this :
    public synchronized Connection getConnection(String s, String s1)
    throws SQLException
    makeURL();
    trace("User us " + s + "URL is " + m_url);
    Connection connection = DriverManager.getConnection(m_url, s, s1);
    return connection;
    So I noticed that the oracle's JDBC code has many of these (I decompiled it:) even though most of the traces are between "if(OracleLog.TRACE)" which is fine.
    So you imagine that for a heavy OLTP application, oppening and closing connections very often (even with the cached data source, there are a lot of trace() without the "if(log)") leads to calling trace() often, without useless computing...
    Riad

  • SQLJ JDBC

    Hi,
    Could you point me to some good resources (white papers) where I can read about performance issues when choosing between SQLJ and JDBC?
    I assume this is a rather general question, but I have to come up with a precise answer. This system is limited by a large number of inserts into Oracle, but the SQL statements are not complicated.
    Regards
    Flemming

    Marcel,
    Another approach could be:
    1) modify the CAPI generator to generate the following code into each CAPI package:
    -- these global package variables are defaulted to U(nknown); the first time an Insert operation is performed, it is determined whether the user is allowed to perform inserts and the g_ins_allowed is set accordingly to Y or N. The same applies to Update and Delete operations
    g_ins_allowed varchar2(1):= 'U';
    g_upd_allowed varchar2(1):= 'U';
    g_del_allowed varchar2(1):= 'U';
    function dml_allowed
    ( p_dml_type in varchar2 -- INS,UPD or DEL
    ) return boolean
    is
    begin
    if p_dml_type = 'INS'
    then
    if g_ins_allowed = 'U'
    then
    g_ins_allowed:= QMS_TRANSACTION_MGT.dml_allowed( <TABLENAME>, p_dml_type);
    end if; -- g_ins_allowed = 'U'
    return g_ins_allowed = 'Y';
    end if; -- p_dml_type = 'INS'
    ... and simmilar code for UPD and DEL
    end dml_allowed;
    2) Add a Business Rule BR_<TABLE ALIAS>000:
    the validation code:
    l_rule_ok:= dml_allowed( g_operation);
    triggering events: insert, update and delete
    Note: this business rule could be automatically generated into every CAPI if and when the generator code is modified. A more ingrained implementation would be possible with a change to the CAPI generator that would automatically call dml_allowed from the init procedure and process the result then and there.
    3) Change procedure disable_br to only allow this procedure to be executed for the owner of the underlying table and/or users with the GRANT privilege on the table (or any other requirement you fancy).
    4) Modify QMS_TRANSACTION_MGT to include the function dml_allowed; this function would check whether the current user has the required DML privilege on the indicated table p_tablt_name, either directly or through a role.
    Note alternatively, for example in case of more complex authorization rules, you could extend the dml_allowed function at CAPI level instead of using a generic QMS_TRANSACTION_MGT function
    best regards,
    Lucas

Maybe you are looking for

  • What  is difference between user group and reference user group?

    hi guys,         what  is difference between user group and reference user group?  your regards   p.suresh

  • ABAP runtime errors    COMPUTE_BCD_OVERFLOW

    ABAP runtime errors    COMPUTE_BCD_OVERFLOW        Occurred on     12/08/2010 at 06:44:17 >> Short dump has not been completely stored. It is too big. Error analysis An overflow has been determined in the current arithmetical operation containing ope

  • Webpage not showing up in mobile me OR via outside server

    hi there, i'm new to publishing websites, but my site was working just fine for a few weeks...then suddenly i'd get this notice when i'd try to visit: We're sorry, but we can't find the iWeb page you've requested. It's possible that: · The address wa

  • Component and application configuration for RPLM_QIMT_NOTIF_MAIN_COMP

    Hi folks, I've been enhancing a used component RPLM_QIMT_NOTIF_COMP as part of RPLM_QIMT_NOTIF_MAIN_COMP and I now need to configure the display output for a new application, but it doesn't work?? I have configured components and used components of a

  • Error in Notification Tab

    Hi All, In Portal Employees are not receiving the Notifications. When they click on the notification tab its giving some warning message. as shown below. SAP_ECC_Humanresources     SomProviderConnector     Jul 26, 2009 11:48:50 AM      Exception occu