Should replace AppModule:beforeDisconnect when using PROXY user database?

Hello, OTN,.
I'm trying to find out the ability to use the proxy database user associated with the application of the ADF.
First link Google showed me this blog: https://blogs.oracle.com/imc/entry/how_to_use_database_proxy. In this case, AppModuleImpl::afterConnect and beforeDisconnect are overloaded.
This implementation of the method showed trouble with passivation/activation.

Other research Ferré it is recommended to substitute AppModuleImpl::prepareSession instead of these methods. Found here: ADF 11 g - user Proxy

My question is: is the second method really activation/passivation without danger? And should I replace beforeDisconnect the same way as described in the first method?

Thank you.
ADF 11.1.2.1

Anyone?

Published by: ILya Cyclone on March 1, 2012 12:35

My question is: is the second method really activation/passivation without danger?

I don't see any problems with it - what have you seen when you tested? Turn off AM pooling (including forces activation/passivation) and test

And should I replace beforeDisconnect the same way as described in the first method?

NO.

Tags: Java

Similar Questions

  • Use proxy user

    Hello
    in order to connect as follows:

    Conn myuser[anotheruser]@mydb

    What more could the Oracle database server must be installed?

    I've seen actually in the documentation:

    http://docs.Oracle.com/CD/E11882_01/network.112/e10744/adminste.htm#i1007943
    1.Log in to the Oracle Internet Directory Self-Service Console
    Thank you.

    No, you do not have whatever it is something special to do the proxy connection works. A user alter is sufficient:
    http://docs.Oracle.com/CD/B19306_01/server.102/b14200/statements_4003.htm#i2115788

    Nicolas.

  • LCC - how to hide "First name" + "Second Name" on the cursor when using multi-user "SharedWhiteBoard."

    I have a Flex Web application and uses the following controls "ConnectSessionContainer" and "SharedWhiteBoard". I run few cases of applications and inside the Whiteboard changed something (example: cordinate, size) it is clear from this development spread hollow LCC to another application connected to the same room and show the cursor 'First Name', 'Second name' + 'connection ID/number.

    Issues related to the:


    -How can I hide/change label = text on the slider. I mean "First Name", "Second name" + "connection ID/number.
    -J' changed in my adobe "First Name" + "Second Name" profile, but is not propagated in the Whiteboard why?
    -Next time when I run the app 'Connection ID/number' incremented even if narrow application and start again. How to manage this part? I mean do not multiply

    Hello

    Try to explore the API SharedWhiteBoard.model.sharedCursorPane.labelField to get and set the displayName property cursors.

    Thank you

    Arun

  • error-2147217900 when using in labview database connectivity tools

    Hai... im new to create the database with the help of examples available im get some ideas... even if when I try to create a table I get an error that is attached with this thread... kindly someone give suggestion to create the database using the Toolkit or suggest resources to...

    I got it.. I tried to create a pass/fail column, I mistake here... and it corrects... must use pass_fail

  • Question about proxy users

    Hello

    I am new to the Oracle security, and I would like to know how to connect to the database using the proxy users and what is the benefit of it? Can someone give me some advice. I have experience with the Oracle database and security.

    Thank you
    Peter

    A standard use case, is you want to have a connection pool in the intermediate level where all application users are connecting to the database to the same user. This allows you to avoid the overhead of creating and destroying a physical database connection whenever an application user requests a web page (creation and close a physical connection, whenever someone asked a page usually would take more time and potentially much more time that actually generate the page would take) and it allows to avoid having tons of physical connection in your pool of connections that can only be reused by user of a particular application which means that you end up with many, many more connections to the database that you need.

    In any environment of three levels, this means that you end up with a connection pool that uses a single shared user database account to do everything. If you do not use the proxy users, this means that your application must know how to create users of the application, it must manage the privileges, it must implement all the security you need, etc.. And this means that the shared user account that everyone use needs to have all the privileges of any user of the application would never which means that the shared user account ends usually run more privileges should it really 99.999% of the time because once each year that some admin user must do something. If the shared database is compromised (either because your application has a security hole, or because someone had access to the shared user account password) the attacker has a much wider range of attacks that they can perform.

    If you are using proxy users, however, you get the best of both worlds. The middle-tier connection pool connects to the database as the shared user has but all actual interactions occur as a user B. Your application needs to build in the ability to manage and apply privileges - it uses which provides the database. Your application does not need to build into the safe, it can take advantage of the ability of Oracle to grant special privileges to some users. You don't end up with a tremendously super-powerful shared user account, you grant just all different individual accounts regardless of the privileges that they actually need so users admin can do certain things and professional power users can do a combination of things and not a separate account can do anything.

    Tom Kyte has a nice discussion on proxy so users

    http://asktom.Oracle.com/pls/Apex/f?p=100:11:0:P11_QUESTION_ID:21575905259251

    Justin

  • How to log on as a proxy user identified externally

    Hello.

    Two users defined thus: create user Njn identified externally. grant connect to Njn; change user App_owner grant connect through Njn;

    Through the sqlplus:

    [App_owner]/@db1 sqlplus

    Via ODP.NET:

    con. ConnectionString = "user Id = App_owner; Proxy User Id =; Data Source = db1; « ;

    How to connect via sqldeveloper in this case (I can connect correctly identified externally by sqldeveloper).

    Regards Niels Jespersen

    I asked a Service request with Oracle. Finally, there is a note of support (Note 1261857.1 : how to use Proxy user in SQL Developer?) that explains how do.

    Best regards, Niels Jespersen

  • When I create the domain user, I used option user must change when you first connect, but am unble to get this

    When I create the domain user, I used option user must change at the first logon, but am unble to get it.

    Hi RadhamAravind,

    Thanks for posting in the Microsoft Community.

    As you create a domain user, the question you posted would be better suited for the IT Pro TechNet public. I would recommend posting your query in the TechNet Forums to get help:

    Windows 7 security TechNet Forums

  • TimesTen - 7001: user authentication failed when using XLA

    I installed TimesTen 11.2.1.8.0 on AIX 5.3 System.* user 'oracle '. I created another user of the application 'risk' to use in my application with TimesTen.

    When running my application with the user 'risk' to connect with TimesTen it is OK. But when I want to use the XLA feature, when I call the createDurableSubscriber function, it returns the error

    javax.jms.JMSException: failure of SQLDriverConnect (XlaCommon.c, line 48): S1000 7001 [TimesTen] [driver ODBC of TimesTen 11.2.1.8.0] TT7001 [TimesTen]: user authentication failed - file "db.c", lineno 9722, procedure 'sbDbConnect '.

    It is strange that if I switch to user 'oracle', it works fine.

    Can someone please help understand the reason why.

    Thank you

    You created the user 'at risk' within your TimesTen database?

    CREATE a USER risk IDENTIFIED BY 'some password'?

    You granted the privilege of the user risk to use XLA?

    XLA GRANT at risk;

    Have you used this user name and password in the JDBC URL when connecting to the database application JMS/XLA?

    The 'oracle' user is probably your admin user of the instance (which is the database root) and therefore can use all the features without special action (but of course you never run application as that user).

    Chris

  • Error occurs when calling remote ADFService11G service. Details: ADFException-3007: The ViewObject "AppModule.VO3" is used as a destination more than a ViewLink. (HY000)

    Hello

    Thanks in advance for helping me to solve after publication:

    I tried to run a report of OBIEE including data model comes from the layer of the ADF.

    In my module of the application, I have 5 display objects:

    For Ex: VO1 VO2 VO3, VO4 VO5

    And I show the links between: VO1 and VO2 (lets say: VO1_VO2_VIewLink).

    VO2 at VO3 ((permet de dire: VO2_VO3_VIewLink)), VO4 is related to the ((permet de dire: VO4_VO3_VIewLink) VO3) & VO5 is linked to VO3 (lets say: VO5_VO3_VIewLink)

    When I deploy this application on OBIEE and run a report with objects of:

    (1) VO1 and VO2-report works fine

    (2) VO2 and VO3 -report works fine

    (3) VO4 and VO3 -report works fine

    (4) VO5 and VO3 -report works fine

    (5) VO1, VO2, VO3 -report works fine

    It is when I run the report with the objects of

    VO1 and VO2 VO3 VO4, it throws an error message:

    "Error occurs when calling remote ADFService11G service. Details: ADFException-3007: The ViewObject "AppModule.VO3" is used as a destination more than a ViewLink. (HY000) »

    OBIEE Version is: 11.1.1.7.0 (with no patches) basis data: 11 GR 2, Jdev:11.1.1.7.0

    Kind regards

    RAM.

    I was able to resolve this error by changing my AppModule datamodel application, by changing the cardinality between VO3 and any other 1: n VO (VO3) to 1 (VO3): n. making VO3 as source VO object rather than view destination object.

    Kind regards

    RAM.

  • Should what predefined order I use when using videos of 1920 x 1080 29.97 fps xperia z5?

    Should what predefined order I use when using videos of 1920 x 1080 29.97 fps xperia z5?

    Someone has an idea?

    Must I provide additional information and if so what?

    Thank you!

    Hi Michel,.

    You may need to check this: FAQ: how to choose the right sequence settings?

    Kind regards

    Navdeep Pandey

  • What type of layer should be used when using the effects lighitng filters "I can't using the way I expect to work -

    What type of layer should be used when using the effects lighitng filters "I can't using the way I expect to work -

    I want to add lights to he image - and to inform the parties of the image - I duplicated the layer add the lights in the filters, but it does not act as a process additive-

    Check out this tutorial from Phlearn on YouTube. It is a bit more flexible, but, of course, requires a bit of elbow grease more Photoshop-wise.

    Create beams of light in Photoshop - YouTube

    Using this technique, you can adjust the 'lights' as you want by manipulating setting masks. See screenshot below. (Still once again, excuse the butchering.)

  • VMA 4.1 request user name password when using esxcli

    Facing a problem when I use vma against a host esxi 4.1 4.1. When using esxcli vma asks user name and password. I tried the root and vi-admin but no luck. I am authenticating against the host (AD not connected). Other commands I used to change the networking worked fine.

    any help appreciated

    Viviane

    Can you confirm the following command on the works of vMA:

    esxcfg-vswitch --server  --username  -l
    

    You will be prompted for the password and make sure you get a list of your vSwitches.

    =========================================================================

    William Lam

    VMware vExpert 2009,2010

    VMware VCP3, 4

    VMware VCAP4-DCA

    VMware scripts and resources at: http://www.virtuallyghetto.com/

    Twitter: @lamw

    repository scripts vGhetto

    Introduction to the vMA (tips/tricks)

    Getting started with vSphere SDK for Perl

    VMware Code Central - Scripts/code samples for developers and administrators

    VMware developer community

    If you find this information useful, please give points to "correct" or "useful".

  • Using java user-defined aggregate function

    Hello

    I'm trying to implement a with Java user-defined aggregate function.

    Here's the Code Javaclass:

    Import Java.util;
    Oracle.sql import. *;
    import java.sql. *;
    import Java.Math.BigDecimal;
    Oracle import. CartridgeServices.*;

    stored the context type

    public class StoredCtx_SecMax
    {
    private BigDecimal b_max;
    private BigDecimal b_secmax;

    public StoredCtx_SecMax()
    {
    b_max = new BigDecimal (0);
    b_secmax = new BigDecimal (0);
    }

    public void SchreibeMax (entry BigDecimal)
    {
    b_max = entry;
    }

    public void SchreibeSecMax (entry BigDecimal)
    {
    b_secmax = entry;
    }

    public BigDecimal LeseMax()
    {
    Return b_max;
    }

    public BigDecimal LeseSecMax()
    {
    Return b_secmax;
    }
    }

    implementation type

    / public class SecondMax_j implements SQLData
    {
    BigDecimal private key;

    Ultimate SUCCESS of static BigDecimal = new BigDecimal (0);
    Final static BigDecimal ERROR = new BigDecimal (1);


    Implement the SQLData interface.

    String sql_type;
    public String getSQLTypeName() throws SQLException
    {
    Return sql_type;
    }

    ' Public Sub readSQL (SQLInput stream, string typeName) throws SQLException
    {
    sql_type = typeName;
    key = stream.readBigDecimal ();
    }

    Public Sub writeSQL (SQLOutput stream) throws SQLException
    {
    stream.writeBigDecimal (key);
    }


    methods of the type that implements ODCITable interface

    public static BigDecimal ODCIAggregateInitialize (oracle.sql.STRUCT [] sctx)
    throws SQLException
    {
    Connection Conn = DriverManager.getConnection("jdbc:default:connection:");

    create a stored environment and store the result set in it
    StoredCtx_SecMax ctx = new StoredCtx_SecMax();

    context of registry stored with cartridge services
    Touch int;
    try {}
    key = ContextManager.setContext (ctx);
    } catch {} (EC CountException)
    error return;
    }

    Create an instance of StockPivotImpl and store the key of
    Object [] impAttr = new Object [1];
    impAttr [0] = new BigDecimal (key);
    StructDescriptor sd = new StructDescriptor ("SECONDMAX_J", conn);
    SCTX [0] = new STRUCT(sd,conn,impAttr);

    return a SUCCESS;
    }

    public BigDecimal ODCIAggregateIterate (BigDecimal input)
    throws SQLException
    {
    retrieve the context stored with the key
    CTX StoredCtx_SecMax;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.GetContext (Key.intValue ());
    } catch (InvalidKeyException ik) {}
    error return;
    }

    BigDecimal b_max;
    BigDecimal b_secmax;

    b_max = ctx. LeseMax();
    b_secmax = ctx. LeseSecMax();

    If (eingabe.compareTo (b_max) == 1)
    {
    CTX. SchreibeSecMax (b_max);
    CTX. SchreibeMax (input);
    }
    on the other
    {
    If (eingabe.compareTo (b_secmax) == 1)
    {
    CTX. SchreibeSecMax (input);
    }
    }

    return a SUCCESS;
    }

    public BigDecimal ODCIAggregateTerminate (double [] returnValue, int flags) throws SQLException {}

    retrieve the context stored with the key
    CTX StoredCtx_SecMax;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.clearContext (Key.intValue ());
    } catch (InvalidKeyException ik) {}
    error return;
    }

    returnValue [0] = ctx. LeseSecMax () .doubleValue ();

    CTX = null;

    return a SUCCESS;
    }


    public BigDecimal ODCIAggregateMerge (oracle.sql.STRUCT ctx2) throws SQLException {}


    return a SUCCESS;
    }
    }


    To implement this in the database, I use the following script:

    CREATE OR REPLACE TYPE IMPROG. SECONDMAX_J as object

    (
    INTEGER key,

    public static function ODCIAggregateInitialize (sctx IN OUT SECONDMAX_J)

    Return number
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal return from SecondMax_j.ODCIAggregateInitialize (oracle.sql.STRUCT []).
    ,



    Member ODCIAggregateIterate (self IN OUT SECONDMAX_J function,

    Number return value)
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal SecondMax_j.ODCIAggregateIterate return (Java.Math.BigDecimal).
    ,



    Member ODCIAggregateTerminate (self IN SECONDMAX_J function,

    Return returnValue NUMBER, flags in number number)
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal return of SecondMax_j.ODCIAggregateTerminate (double [], int).
    ,



    Member ODCIAggregateMerge (self IN OUT SECONDMAX_J function,

    CTX2 IN SECONDMAX_J) return number
    IN THE JAVA LANGUAGE
    NAME "Java.Math.BigDecimal SecondMax_j.ODCIAggregateMerge return (oracle.sql.STRUCT)".
    );
    /

    CREATE OR REPLACE FUNCTION F_SECONDMAX_J (NUMBER value) RETURN NUMBER

    PARALLEL_ENABLE

    AGGREGATION to the HELP of SecondMax_j;
    /



    When I now use the F_SECONDMAX_J function.

    "(Columnname) select F_SECONDMAX_J from Tablename t;

    It works perfectly and shows me the right result.

    Then I tried to implement the fusion part as follows:

    public BigDecimal ODCIAggregateMerge (oracle.sql.STRUCT ctx2) throws SQLException {}

    BigDecimal Key2 = null;

    BigDecimal ctx_max = null;
    BigDecimal ctx_secmax = null;

    BigDecimal ctx2_max = null;
    BigDecimal ctx2_secmax = null;

    retrieve the context stored with the key
    StoredCtx_SecMax ctx = null;
    try {}
    CTX = (StoredCtx_SecMax) ContextManager.GetContext (Key.intValue ());
    } catch (Exception e) {}

    }

    Object [] impAttr = ctx2.getAttributes ();

    Key2 = (BigDecimal) impAttr [0];

    retrieve the second context stored using the key2
    StoredCtx_SecMax ctx_sec = null;
    try {}
    ctx_sec = (StoredCtx_SecMax) ContextManager.GetContext (key2.intValue ());
    } catch (Exception e) {}

    }

    ctx_max = ctx. LeseMax();
    ctx_secmax = ctx. LeseSecMax();

    ctx2_max = ctx_sec. LeseMax();
    ctx2_secmax = ctx_sec. LeseSecMax();

    If (ctx2_max.compareTo (ctx_max) == 1)
    {
    If (ctx2_secmax.compareTo (ctx_secmax) == 1)
    {
    CTX. SchreibeSecMax (ctx2_secmax);
    }
    on the other
    {
    CTX. SchreibeSecMax (ctx_max);
    }
    CTX. SchreibeMax (ctx2_max);
    }
    on the other
    {
    If (ctx2_max.compareTo (ctx_secmax) == 1)
    {
    CTX. SchreibeSecMax (ctx2_max);
    }
    }

    return a SUCCESS;
    }

    When I now try the function

    "Select / * + parallel (t 4) * / F_SECONDMAX_J (Columnname) of Tablename t;

    I always get a pointer NULL-error because the variable key2 is always 0 and therefore the functions LeseMax() and LeseSecMax()
    in the second context 'ctx_sec' produce this error NULL pointer.

    To me it seems that each parallel process is the construction of an additional class for himself, which is not available are my main process.

    My question is now how it is possible to access the context of stored of the parallel process, so that I can combine the results.

    Thank you very much

    Josef

    Hi Josef,

    just guess that I've never implemented with java user-defined aggregate functions or support parallel execution:

    Maybe you have to implement ODCIAggregateWrapContext?

    + Application of ODCIAggregateWrapContext is optional. It should be implemented only when the external memory is used to hold the aggregative, context and the user-defined aggregate is evaluated in parallel (which is, stated as PARALLEL_ENABLE). If the user-defined aggregate is not evaluated in parallel, ODCIAggregateWrapContext is not necessary. +
    [http://docs.oracle.com/cd/B12037_01/appdev.101/b10800/dciaggfns.htm#i1004974]

    Report it to progress and success.

    Good luck
    Rainer Stenzel

  • Satellite A200 - IE7 windows 'restore down' when using the Tracker pad

    Hi, I recently bought a Satellite A200 - 1VO and when using the laptop without a windows mouse explore 'restore down' at random.

    I found a thread on the site of the Internet USER who said that if his past not with a mouse, it may need tracker drivers up-to-date.
    You can also consider its under warranty.
    Any ideas anyone?

    Hello

    It s a bit confused what you´ve writes down. What do you mean exactly, where´s the problem and what you want to tell us when writing:

    > and when using the laptop without a windows mouse explore 'restore down' at random.
    >
    > I found a thread on the site of the Internet USER who said that if his past not with a mouse, it may need tracker drivers up-to-date.

    Whereas it should be, where´s now the problem?

    Please give clear and understandable feedback, then I and other users you could point to the solution.

    THX

  • How to program the shift register to play only when a new user is detected user?

    Hello

    I'm currently developing a program of position control in labview. The program is quite simple, in which case the user will enter the distance on which he wants the table in the labview program and labview will send the signal to move a motor that will turn a ball screw to move a table horizontally to the targeted position. The criterion is that the profile of the engine depends on the distance to move, if a biphase (acceleration and deceleration) or three phase (acceleration, steady speed, deceleration) to reach the position of the target.

    The problem occurs when the user wants to enter a new entry second position) for the table, as the input by the user is the position that the table should be, but the necessary input to determine what profile the engine follows depends on the distance that the table moves to the target position. Therefore, I need a function to save the entry by the user temporarily and reminds that when a new user input is detected. Hereby, I would be able to use the difference of the input (input [n + 1] [n] input) and animal feed to determine what profile the engine follows and the entry by the user can be kept in the position he wants to the table to get (to compare with encoder).

    I thought to use for shift registers do, but I am not able to perform the deduction ([n + 1] - [n]) only when it detects a new entry. When I try to use registry to offset, it moves to the target location, and we only reached it will go to the original position. For example, when a user entry 90, this means that the table must be moved to the point 90. The shift register is initialized to 0, it will move to the point 90 (90-0 = 90), but arriving at 90, the shift register sends a signal of 90 (90-90 = 0) and the table back to its original position.

    Is it possible that I can delay the reading of the shift register only when a new entry is detected or there at - it another way for me to achieve what I want?

    I tried searching the forum site and neither discussion but could not find similar problems. Thank you for your help in advance.

    As I understand it, the use of shift registers with a structure of the event (to detect a user event when the user enters a new value) should solve the problem. Do not forget to post your request (or a version of it that isolates the issue) when you arrive at the lab, if we can get a clear visual of the issue you are facing.

Maybe you are looking for