Urgent !! help on resultset.next()

I have a query that returns around 2100 records ( not many ! ) , when I am processing my result set with a while condition , it's taking too much time ( around 30 seconds ). Here is the code
public static GroupHierEntity load(Connection con)
throws SQLException
internalCustomer=false;
String customerNameOfLogger = com.photomask.framework.ControlServlet.CUSTOMER_NAME;
if ( customerNameOfLogger.startsWith("DPI") || customerNameOfLogger.startsWith("DUPONT") || customerNameOfLogger==null || customerNameOfLogger.equals("") ||customerNameOfLogger.equals("Unavailable") )
{ internalCustomer=true;}
// System.out.println(" ***************** customer name of logger " + com.photomask.framework.ControlServlet.CUSTOMER_NAME + "internal customer " + internalCustomer);
// show all groups to internal customers and only their customer groups for external customers
if (internalCustomer) {
stmtLoad = con.prepareStatement(sqlLoad);
ResultSet rs = stmtLoad.executeQuery();
return new GroupHierEntity(rs); }
else
stmtLoadExternal = con.prepareStatement(sqlLoadExternal);
stmtLoadExternal.setString(1, customerNameOfLogger);
stmtLoadExternal.setString(2, customerNameOfLogger);
// System.out.println("***** sql " +sqlLoadExternal);
ResultSet rs = stmtLoadExternal.executeQuery();
return new GroupHierEntity(rs);
System.out.println(" before load ");
GroupHierEntity ge = GroupHierEntity.load(con);
System.out.println(" after load ");
while(ge.next())
lvl = ge.getInt("lvl");
oid = ge.getLong("oid");
name = ge.getString("name");
if(internalCustomer) {
if (lvl == 2)
int i = getAlphaIndex(name);
super.setAppendRoot(alphaIndex);
gn = new GroupListDataNode(lvl+1,oid,name);
gn.setSelectable(true);
this.addNode(gn);
count++;
System.out.println("*** count "+ count);
ge.close();
sqlquery used for this
select lvl,oid,name from group_hierarchy;
definition for group_hierarchy
CREATE OR REPLACE VIEW group_hierarchy (
lvl,
oid,
parent_id,
key,
name )
AS
select level as lvl,oid,parent_id,key,name from admin_object
start with key='group'
connect by prior oid = parent_id
========================
the time taken between 'before load' and 'after load' is only 1 sec and then time taken between 'after load' and 'count' is 30 sec ( this is just for reading the resultset)
=================================
Then I removed every thing in the while clause and just run as it is , still it is taking same time ( 30 secs )
while(ge.next())
{count++;}
Why the while condition ( ge.next() ) is taking so much time ? Is there any other efficient way of reading the result set ?
I am using Oracle8i database.
Thanks ,
bala

Thanks for the replies. In fact , I tested this code with the database returning only 2 rows, even then it takes same time.
If you pay close attention to the query that builds the group_hierarchy view , you will notice this is a heirarchial structure with start with.. connect by .... I think this is where the problem is and a scope for tuning. On sqlplus , when I run this query 'select * from group_hierarchy' it takes only a second , and when I run this query ' select count(*) from group
_hierrarchy'  it takes 25 seconds.  Why ?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • Your urgent help will be very much appreciated

    I have a problem whenever I connect my database and need your urgent help. the sample source code is below
    import java.sql.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    public class Table extends JFrame
    private Connection con;
    private JTable table;
    public Table()
         String url = "jdbc:odbc:Books";
         String username="";
         String password="";
         try{
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         con = DriverManager.getConnection(url, username, password);
         catch(ClassNotFoundException cnfex)
         System.err.println("Failed to load JDBC/ODBC driver.");
         cnfex.printStackTrace();
         System.exit(1);
         catch(SQLException sqlex)
         System.err.println("Failed to connect");
         sqlex.printStackTrace();
         getTable();
         setSize(45,150);
         show();
    public void getTable()
         Statement state;
         ResultSet result;
         try{
         String query="Select * from Author";
         state=con.createStatement();
         result=state.executeQuery(query);
         displayResult(result);
         state.close();
         catch(SQLException sqlex)
         sqlex.printStackTrace();
    public void displayResult(ResultSet rs)throws SQLException
    boolean moreRecord=rs.next();
    if (!moreRecord)
    JOptionPane.showMessageDialog(this, "ResultSet contained no record");
    setTitle("No records to display");
    return;
    setTitle("Author table from Books");
    Vector columnHeads=new Vector();
    Vector rows=new Vector();
    try{
    ResultSetMetaData rsmd=rs.getMetaData();
    for (int i=1; i<=rsmd.getColumnCount(); i++)
    columnHeads.addElement(rsmd.getColumnName(i));
    do{
    rows.addElement(getNextRow(rs, rsmd));
    }while(rs.next());
    table=new JTable(rows, columnHeads);
    JScrollPane scroller=new JScrollPane(table);
    getContentPane().add(scroller,BorderLayout.CENTER);
    validate();
    catch(SQLException sqlex)
    sqlex.printStackTrace();
    public Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
              throws SQLException
    Vector currentRow=new Vector();
    for (int i=1; i<=rsmd.getColumnCount(); i++)
    switch (rsmd.getColumnType(i))
    case Types.VARCHAR:
         currentRow.addElement(rs.getString(i));
         break;
         case Types.INTEGER:
         currentRow.addElement(new Long(rs.getLong(i)));
         break;
    default:
    System.out.println("Type was: "+rsmd.getColumnTypeName(i));
    return currentRow;
    public void shutDown()
         try{
         con.close();
         catch(SQLException sqlex)
         System.err.println("Unable to disconnect");
         sqlex.printStackTrace();
    public static void main(String args[])
         final Table app=new Table();
         app.addWindowListener( new WindowAdapter()
         public void windowClosing(WindowEvent e)
              app.shutDown();
              System.exit(0);

    Thank you for your help. When I compile it, it is fine, the problem happens when run it.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6d448d54
    Function name=(N/A)
    Library=C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hotspot\jvm.dll
    NOTE: We are unable to locate the function name symbol for the error
    just occurred. Please refer to release documentation for possible
    reason and solutions.
    Current Java thread:
    at sun.jdbc.odbc.JdbcOdbc.driverConnect(Native Method)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at Table.<init>(Table.java:26)
    at Table.main(Table.java:145)
    Dynamic libraries:
    0x00400000 - 0x00405000 C:\WINNT\system32\java.exe
    0x77F80000 - 0x77FFB000 C:\WINNT\System32\ntdll.dll
    0x77D90000 - 0x77DED000 C:\WINNT\system32\ADVAPI32.dll
    0x77E60000 - 0x77F35000 C:\WINNT\system32\KERNEL32.DLL
    0x786F0000 - 0x78761000 C:\WINNT\system32\RPCRT4.DLL
    0x78000000 - 0x78046000 C:\WINNT\system32\MSVCRT.dll
    0x60000000 - 0x6003A000 c:\program files\rising\rav\ApiHook.dll
    0x05000000 - 0x0502E000 c:\program files\rising\rav\MemMon.dll
    0x77DF0000 - 0x77E55000 C:\WINNT\system32\USER32.dll
    0x77F40000 - 0x77F7C000 C:\WINNT\system32\GDI32.DLL
    0x75E00000 - 0x75E1A000 C:\WINNT\System32\IMM32.DLL
    0x6D420000 - 0x6D4F7000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hotsp
    ot\jvm.dll
    0x77530000 - 0x77560000 C:\WINNT\system32\WINMM.dll
    0x6D220000 - 0x6D227000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\hpi.d
    ll
    0x6D3B0000 - 0x6D3BD000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\verif
    y.dll
    0x6D250000 - 0x6D266000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\java.
    dll
    0x6D3C0000 - 0x6D3CD000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\zip.d
    ll
    0x6D020000 - 0x6D12A000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\awt.d
    ll
    0x777C0000 - 0x777DE000 C:\WINNT\system32\WINSPOOL.DRV
    0x75010000 - 0x75020000 C:\WINNT\system32\MPR.DLL
    0x77A30000 - 0x77B25000 C:\WINNT\system32\ole32.dll
    0x6D1E0000 - 0x6D21B000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\fontm
    anager.dll
    0x6DD30000 - 0x6DD36000 C:\WINNT\System32\INDICDLL.dll
    0x37210000 - 0x3723D000 C:\WINNT\DOWNLO~1\CnsMin.dll
    0x77C50000 - 0x77C9A000 C:\WINNT\system32\SHLWAPI.dll
    0x777E0000 - 0x777E7000 C:\WINNT\system32\VERSION.dll
    0x75950000 - 0x75956000 C:\WINNT\system32\LZ32.DLL
    0x6D290000 - 0x6D29A000 C:\Program Files\JavaSoft\JRE\1.3.1_05\bin\JdbcO
    dbc.dll
    0x1F7F0000 - 0x1F825000 C:\WINNT\system32\ODBC32.dll
    0x76AF0000 - 0x76B2D000 C:\WINNT\system32\comdlg32.dll
    0x77B30000 - 0x77BB9000 C:\WINNT\system32\COMCTL32.DLL
    0x78F90000 - 0x791D6000 C:\WINNT\system32\SHELL32.DLL
    0x1F8E0000 - 0x1F8F6000 C:\WINNT\system32\odbcint.dll
    0x77900000 - 0x77923000 C:\WINNT\system32\imagehlp.dll
    0x72960000 - 0x7298D000 C:\WINNT\system32\DBGHELP.dll
    0x687E0000 - 0x687EB000 C:\WINNT\system32\PSAPI.DLL
    Local Time = Tue Feb 25 21:33:38 2003
    Elapsed Time = 7
    # HotSpot Virtual Machine Error : EXCEPTION_ACCESS_VIOLATION
    # Error ID : 4F530E43505002BD
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Java VM: Java HotSpot(TM) Client VM (1.3.1_05-b02 mixed mode)
    # An error report file has been saved as hs_err_pid1792.log.
    # Please refer to the file for further information.
    #

  • b font color ='red' Java JDBC and Oracle DB URGENT HELP PLEASE /font /b

    Hello, I am a newbie. I'm very interested in Java in relation to JDBC, Oracle and SAP.I am trying to connect to an Oracle DB and I have problems to display the output on the consule in my application. What am I doing wrong here . Please help me. This is my code: Please Explain
    import java.sql.*;
    import java.sql.DriverManager;
    import java.sql.Connection;
    public class SqlConnection {
         public static void main(String[] args) {
              Class.forName("oracle.jdbc.driver.OracleDriver"); //Loading the Oracle Driver.
              Connection con = DriverManager.getConnection
              ("jdbc:orcle:thin:@34.218.5.3:1521:ruka","data","data"); //making the connection.
              Statement stmt = con.createStatement ();// Sending a query to the database
              ResultSet rs = stmt.executeQuery("SELECT man,jean,test,kok FROM sa_kostl");
              while (rs.next()) {
                   String man = rs.getString("1");
                   String jean = rs.getString("2");
                   String test = rs.getString("3");
                   String kok = rs.getString("4");
                   System.out.println( man, jean, test,kok );//here where my the
                                                 //compiler gives me errors
              stmt.close();
              con.close();
    }

    <b><font color ='red'>Java JDBC and Oracle DB URGENT HELP PLEASE</font></b>Too bad your attempt at getting your subject to have greater attention failed :p

  • Sending Details -- URGENT HELP REQUIRED! ! !

    Hi,
    I have a programming problem which I need urgent help with....
    1.) I firstly have a HTML file which a user will fill out 3 fields on and submit.
    2.) A servlet will get these parameters, validate some information and update a database.
    Problem Part Needs to send on these details to another servlet which will be located on a seperate server.
    Is there a way of doing a submit like function without an actual submit, as this will all be done away from the user.
    Was initially going to use:
    ctx = getServletContext();
    rd = ctx.getRequestDispatcher("https://localhost:8443/servlet/FileName");But found out you can only do this with files in the same immediate location!
    3.) Next servlet will accept in the same details as 2, and do some more functions and database updating. Before again sendin on some details to another servlet! (so same problem as in 2).
    4.) Accepts in details from 3 and updaes database!
    So does anbody have any ideas how this can be done??
    Any help greatly appreciated.
    DBM.

    Whats so wrong with posting in more than one forum? I
    need to get this done in the next few hours and im not
    exaclt the most qualified java developer in the
    world!!
    sorry if its such a crime! :o(Should be obvious. You post exact question in forum A and B. Person A answers you on forum A. Person B, not knowing you were already answered because he's looking at the post on forum B, answers you on forum B, thus having wasted his time.

  • I need urgent help to remove unwanted adware from my iMac. Help!

    I need urgent help to remove unwanted adware from my iMac. I have somehow got green underline in text ads, pop up ads that come in from the sides of the screen and ads that pop up selling similar products all over the page wherever I go. Its getting worse and I have researched and researched to no avail. I am really hestitant to download any software to remove whatever it is that is causing this problem. I have removed and reinstalled chrome. I have cleared Chrome and Safari cookies. Checked extensions, there are none to remove. I need to find an answer on how to get rid of these ads. Help please!

    You installed the "DownLite" trojan, perhaps under a different name. Remove it as follows.
    Back up all data.
    Triple-click anywhere in the line below on this page to select it:
    /Library/Application Support/VSearch
    Right-click or control-click the line and select
    Services ▹ Reveal in Finder (or just Reveal)
    from the contextual menu.* A folder should open with an item named "VSearch" selected. Drag the selected item to the Trash. You may be prompted for your administrator login password.
    Repeat with each of these lines:
    /Library/LaunchAgents/com.vsearch.agent.plist
    /Library/LaunchDaemons/com.vsearch.daemon.plist
    /Library/LaunchDaemons/com.vsearch.helper.plist
    /Library/LaunchDaemons/Jack.plist
    /Library/PrivilegedHelperTools/Jack
    /System/Library/Frameworks/VSearch.framework
    Some of these items may be absent, in which case you'll get a message that the file can't be found. Skip that item and go on to the next one.
    Restart and empty the Trash. Don't try to empty the Trash until you have restarted.
    From the Safari menu bar, select
    Safari ▹ Preferences... ▹ Extensions
    Uninstall any extensions you don't know you need, including any that have the word "Spigot" in the description. If in doubt, uninstall all extensions. Do the equivalent for the Firefox and Chrome browsers, if you use either of those.
    This trojan is distributed on illegal websites that traffic in pirated movies. If you, or anyone else who uses the computer, visit such sites and follow prompts to install software, you can expect much worse to happen in the future.
    You may be wondering why you didn't get a warning from Gatekeeper about installing software from an unknown developer, as you should have. The reason is that the DownLite developer has a codesigning certificate issued by Apple, which causes Gatekeeper to give the installer a pass. Apple could revoke the certificate, but as of this writing, has not done so, even though it's aware of the problem. It must be said that this failure of oversight is inexcusable and has seriously compromised the value of Gatekeeper and the Developer ID program. You cannot rely on Gatekeeper alone to protect you from harmful software.
    *If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combination  command-C. In the Finder, select
    Go ▹ Go to Folder...
    from the menu bar and paste into the box that opens by pressing command-V. You won't see what you pasted because a line break is included. Press return.

  • ResultSet.next() and resultset.islast() problem

    I have query which returns 10 records. I run the using preparedStatement. When i use the while(resultSet.next()), the loop runs untill 10 records and after that when it come to the while check it hangs.
    Sample code
    pstmt= conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    rs = pstmt.executeQuery();
    while (rsAccessNoEq.next()) {...
    Then i added the code in the while loop
    if(rs.isLast()){
    return;
    For the first iteration itself the theisLast() is true and it terminates from the loop.
    Please help me

    public class ISP {
         private GFA gestorFic = null;
         private GCA gestorCad = null;
         private GBDAgestor = null;
         private String path = null;
         ServiceProcessVO javaIntra = null;
         ServiceProcessVO javaIntra1 = null;
         ServiceProcessVO javaIntra2 = null;
         ServiceProcessVO javaIntra3 = null;
         ArrayList dataList = null;
         List dataFile = null;
         ArrayList dataList1 = null;
         ArrayList dataList2 = null;
         ArrayList dataList3 = null;          
         public final void iP() throws SQLException,
         MCEA {
         ResultSet rsIntraHq = null;
              Connection connIntraHq = null;
              PreparedStatement pstmtIntraHq = null;
              ResultSet rsIntraFlow = null;
              Connection connIntraFlow = null;
              PreparedStatement pstmtIntraFlow = null;
              ResultSet rsEqNoAccess = null;
              Connection connEqNoAccess = null;
              PreparedStatement pstmtEqNoAccess = null;
              ResultSet rsAccessNoEq = null;
              Connection connAccessNoEq = null;
              PreparedStatement pstmtAccessNoEq = null;
              ResultSet rsFlowHqAccess = null;
              Connection connFlowHqAccess = null;
              PreparedStatement pstmtFlowHqAccess = null;
              dataList = new ArrayList();          
              dataFile = new ArrayList();
              System.out.println("At the begining :"+now() );
              dataFile = gestorFic.leerArchivo(path, file);
              System.out.println("After first step :"+now() );
              int size1 = dataFile.size();
              try {
                   connAccessNoEq = gestor.getConnection();
                   javaIntra = new ServiceProcessVO();
                   pstmtAccessNoEq = connAccessNoEq
                   .prepareStatement(ConsultasAssets.INTRA_ACCESS_NOEQ);
                             //ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
                   pstmtAccessNoEq.setString(1, oti);
                   pstmtAccessNoEq.setString(2, oti);
                   pstmtAccessNoEq.setString(3, oti);
                   rsAccessNoEq = pstmtAccessNoEq.executeQuery();
                   //int k = rsAccessNoEq.TYPE_SCROLL_SENSITIVE;
                   int i = 0;
                   //rsAccessNoEq.last();
                   while (rsAccessNoEq.next()) {
                        i++; System.out.println("Begin of loop:"+i);
                        javaIntra = populatedata(rsAccessNoEq, true);
                        dataList.add(javaIntra);
                        // Flow Hq Access
                        try {
                             connFlowHqAccess = gestor.getConnection();
                             javaIntra1 = new ServiceProcessVO();
                             pstmtFlowHqAccess = connFlowHqAccess
                             .prepareStatement(ConsultasAssets.HQ_ACCESS);
                             pstmtFlowHqAccess.setString(1, javaIntra
                                       .getCTASOCIACION().trim());
                             pstmtFlowHqAccess.setString(2, rsAccessNoEq.getString(1)
                                       .trim());
                             pstmtFlowHqAccess.setString(3, rsAccessNoEq.getString(3)
                                       .trim());
                             pstmtFlowHqAccess.setString(4,oti);
                             pstmtFlowHqAccess.setString(5,oti);
                             pstmtFlowHqAccess.setString(6,oti);
                             rsFlowHqAccess = pstmtFlowHqAccess.executeQuery();
                             while (rsFlowHqAccess.next()) {
                                  javaIntra1 = populatedata(rsFlowHqAccess, false);
                                  dataList.add(javaIntra1);
    //                         if(rsAccessNoEq.isAfterLast()){
    //                              return;
                        } catch (SQLException se) {
                             MCLA.logFatel(ClassNameAssets
                                       .getQualifiedClassName()
                                       + ": "
                                       + ClassNameAssets.getLineNumber()
                                       + ": "
                                       + "Error Occurred in HQ_ACCESS: "
                                       + se.getMessage());
                             throw new MigracionCommonExceptionAssets(se.getMessage());
                        } finally {
                             pstmtFlowHqAccess.close();
                             if (rsFlowHqAccess != null) {
                                  rsFlowHqAccess.close();
                             //gestor.releaseConn(connFlowHqAccess);
         private SPVOpopulatedata(ResultSet rsCpProcess, boolean modify)
         throws SQLException {
              SPVOjavaIntra = new ServiceProcessVO();
              if (rsCpProcess.getString(ConstantesAssets.NU) != null
                        && !rsCpProcess.getString(ConstantesAssets.NU)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setNU(rsCpProcess.getString(
                             ConstantesAssets.NU).trim());
              if (rsCpProcess.getString(ConstantesAssets.NU_ASO) != null
                        && !rsCpProcess.getString(ConstantesAssets.NU_ASO)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setNU_ASO(rsCpProcess.getString(
                             ConstantesAssets.NU_ASO).trim());
              // HashTable logic to increament value for CTASOCIACION Start
              if (modify == true) {
                   if (rsCpProcess.getString(ConstantesAssets.CTASOC) != null
                             && !rsCpProcess.getString(ConstantesAssets.CTASOC)
                             .equalsIgnoreCase(ConstantesAssets.BLANK)) {
                        char cha = ConstantesAssets.A;
                        if (tempMap.get(javaIntra.getNU()) != null) {
                             cha = tempMap.get(javaIntra.getNU()).toString()
                             .charAt(0);
                             cha++;
                        tempMap.put(javaIntra.getNU(), Character
                                  .toString(cha));
                        javaIntra.setCTASOCIACION(((rsCpProcess
                                  .getString(ConstantesAssets.CTASOC).trim()) + cha)
                                  .trim());
              } else {
                   javaIntra.setCTASOCIACION(rsCpProcess.getString(
                             ConstantesAssets.CTASOC).trim());
              // HashTable logic to increament value for CTASOCIACION End
              if (rsCpProcess.getString(ConstantesAssets.CCC) != null
                        && !rsCpProcess.getString(ConstantesAssets.CCC)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setCCC(rsCpProcess.getString(
                             ConstantesAssets.CCC).trim());
              if (rsCpProcess.getString(ConstantesAssets.FIV1) != null
                        && !rsCpProcess.getString(ConstantesAssets.FIV1)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setFIV(rsCpProcess.getString(
                             ConstantesAssets.FIV1).trim());
              if (rsCpProcess.getString(ConstantesAssets.FFV) != null
                        && !rsCpProcess.getString(ConstantesAssets.FFV)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setFFV(rsCpProcess.getString(
                             ConstantesAssets.FFV).trim());
              if (rsCpProcess.getString(ConstantesAssets.ES) != null
                        && !rsCpProcess.getString(ConstantesAssets.ES)
                        .equalsIgnoreCase(ConstantesAssets.BLANK))
                   javaIntra.setES(rsCpProcess.getString(
                             ConstantesAssets.ES).trim());
              javaIntra.setI(ConstantesAssets.N);
              javaIntra.setN(ConstantesAssets.BLANK);
              javaIntra.setC(ConstantesAssets.BLANK);
              javaIntra.setCO(ConstantesAssets.BLANK);
              javaIntra.setFI(ConstantesAssets.BLANK);
              return javaIntra;
    Please see the code
    Siva

  • Urgent help requested- MSS

    Hello people,
    consider the following scenario
    work flow is getting triggered to the Line manager (chief) and so on to next agents
    How can we make use of substitution in following scenarios
    scenario1- planned leave by Line manager (I think this can be done using substitution in MSS)
    Scenario 2- Unplanned leave by Line manager
    scenario 3- position of Line manager is vacant
    The workflow i am using is not a standard woprkflow.
    The above scenarios are applicable in case of leave approval and trip request approval.
    Urgent help appreciated.
    Thx

    Forgive if the terms are not excact - my system is not in English.
    For scenario 1: Use substitution rule "receives my tasks" when setting up substitutions in the uWL
    For scenario 2: All managers should have a substitution rule "is my substitute".  Then the substitute can go into the substitution rule and take over the tasks.  This can then be discontinued when manager is back
    For scenario 3: Switch WFLOW VAPOS = X  determines the behaviour when manager position is empty. .  For some reason the switch is not there in standard - but we set it just for this scenario. The Workflow then checks up the hierachy and finds the next manager.
    /Kirsten

  • Data uload to ODS ending up with an error. URGENT HELP NEEDED!!!!!!

    Hi
    My Sceniro is Full load from ODS1 to 5 other ODS. Iam uploading the data to other 5 ODS by selecting 1 ODS at a time.
    Problem i am facing is upload is ending up with error mesg. Error Mesg are
    <b>Error 8 when starting the extraction program - R3019
    Error in Source System - RSM340
    Req xxx in ODS2 must have QM ststus green before it is activated - RSM1110</b>
    I have seen the the OSS notes for given error no, but they are not applicable to me. what could be the other possible solution.
    In detail tab of the monitor i see red light at Extraction step and Subseq. processing.
    Its quite urgent bcoz this error is occuring in Production system.
    Plzzzz urgent help needed.
    Thanks
    Rohini
    Message was edited by: Rohini Garg

    rohini,
    go to RSA1->Modeling->Source Systems and right-click on your BW system, and click on 'Replicate Datasources'.
    also, go to the ODS that's causing the problem (via RSA1->InfoProvider and go to your ODS), right click and click on 'Generate Export Datasource'.
    one more thing, make sure that all your record/s in the source ODS is active. if you're not sure manage its contents and click on 'Activate'. if there are any entries in the the next screen that comes up, you need to activate it first, then try everything again.
    let me know what happens. also try to look for error messages in ST22 and SM21 that may be related to this and post whatever possible error you see there here.
    ryan.

  • ResultSet.next was not called

    I have this query ://Attempt The DB insert
    ResultSet rs = stmt.executeQuery("SELECT lhh_demo_id_seq.nextval from dual");
    String Demo_ID = rs.getString(1);
    while(rs.next()) {
    while (i < 2) {
    i++;
    rs.close();
    try
    Date date = dt.parse(birth);
    System.out.println("date " + date);
    stmt.executeUpdate( "insert into lhh_demo_reg values (" + Demo_ID + "," + RegNo + "," + Name + ",to_date('" + date+"','DD-Mon-YYYY')," + Center_ID + ")");
    catch(Exception e){}
    // Now Register a NULL Admission Record
    i = 0;
    rs = stmt.executeQuery("SELECT lhh_adm_id_seq.nextval from dual");
    String Adm_ID = rs.getString(1);
    while(rs.next()) {
    rs.close();
    stmt.executeUpdate("insert into lhh_adm_reg values (" + Adm_ID + "," + Center_ID +" , " + Demo_ID + ")");
    // Now Register a NULL Procedure Record
    i = 0;
    rs = stmt.executeQuery("SELECT lhh_proc_id_seq.nextval from dual");
    String Proc_ID = rs.getString(1);
    while(rs.next()) {
    while (i < 2) {
    i++;
    rs.close();
    stmt.executeUpdate("insert into lhh_proc_reg values (" + Proc_ID + "," + Center_ID + "," + Demo_ID + "," + Adm_ID +")");
    //Now Register a NULL Lesion Record
    i = 0;
    rs = stmt.executeQuery("SELECT lhh_les_id_seq.nextval from dual");
    String Les_ID = rs.getString(1);
    while(rs.next()) {
    while (i < 2) {
    i++;
    rs.close();
    but i keep getting ResultSet.next was not called...can anyone help please?

    I'm not sure what exactly you are trying to do ... but ...
    You seem to have several ResultSets in action. The first step is to find which of your "selects" is giving this exception. So, go ahead a enclose your statements within a try catch finally block. Use the finally block to close your result set (if not null).
    Once you narrow down the offending code, post back with the offending part of the code & the result you got with stack trace (if you still can't figure out what's happenning)
    HTH
    --Das                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Resultset.next() Issue

    Okay I have narrow my issue down to activity involved with the resultset.next() method. What is happening is I am working through a small resultset--3 records. These records are made up of columns from 3 seaprate tables (9 total). Some of these tables have many records (> 3K) in them. I moved the SQL statement in a store procedure so we can execute the query in a faster manner. The store procedure is returning the information in only 46ms. However, when I start looking through the resultset on the app server, it is taking 19K ms for the first time through the loop.
    I am at a lost to explain why the first iteration is taking so long. I have looked back at the SQL statement. I use alias names for the tables. I identify the column names in the select statement, but I do not use aliases for the column names. I am wondering if my problem is connected to the fact that the Oracle Driver
    maybe going back to get the column names the first time through the result set. I am not using the column name to index into the resultset. If my theory is right, this would explain the high latency. If I am wrong, I am stumped.
    Any suggestions or help explaining this would be greatly appreciated.
    As always, thanks for reading my post.
    Russ

    Execution of a CallableStatement (Procedure) is relatively fast. Getting ResultSet back is fast. But First iteration over the result set takes a lot of time comparing to the following iterations.
    Part of the code :
    long start=System.currentTimeMillis();
    int i=0;
    long local=System.currentTimeMillis();
    while(rs.next()){
    if (i==0){
    MetricsUtil.printTime("ResultSetRowHolder.getRows(ResultSet rs) ["+list.size()+" ]",local);
    local=System.currentTimeMillis();
    hol=new ResultSetRowHolder(rs);
    list.add(hol);
    i++;
    if (i%100==0){
    MetricsUtil.printTime("ResultSetRowHolder.getRows(ResultSet rs) ["+list.size()+" ]",local);
    local=System.currentTimeMillis();
    MetricsUtil.printTime("ResultSetRowHolder.getRows(ResultSet rs) ["+list.size()+" ]",start);
    Printouts
    Metrics << QueryHelper.executeStatement() >> Total time -> 2.836 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [0 ] >> Total time -> 13.867 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [100 ] >> Total time -> 0.48 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [200 ] >> Total time -> 0.44 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [300 ] >> Total time -> 0.47 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [400 ] >> Total time -> 0.38 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [500 ] >> Total time -> 0.37 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [600 ] >> Total time -> 0.38 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [700 ] >> Total time -> 0.35 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [800 ] >> Total time -> 0.34 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [900 ] >> Total time -> 0.32 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [1000 ] >> Total time -> 0.34 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [1100 ] >> Total time -> 0.41 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [1200 ] >> Total time -> 0.32 sec
    Metrics << ResultSetRowHolder.getRows(ResultSet rs) [1230 ] >> Total time -> 14.340 sec

  • JDBC ResultSet.next() Error

    Can anyone help me with this error? I am running this in AIX box (java 1.3) using OCI to VMS RDB Server. I get this error when looping through the ResultSet.next().
    Thanks
    --Elie
    Exception in thread "main" java.sql.SQLException: ORA-09100: Message 9100 not found; No message file for product=NATCONN, facility=GTW
    %SYSTEM-F-NOMSG, Message number 0000C1C4
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java(Compiled Code))
    at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java(Compiled Code))
    at oracle.jdbc.oci8.OCIDBAccess.fetch(OCIDBAccess.java(Compiled Code))
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java(Compiled Code))
    at mbr.main(mbr.java(Compiled Code))

    I got it resolved by using NVL function on each of my DATE columns. I found a log from the RDB server complaining about dates. The NVL seems did the trick.
    Thanks again for your reply.
    --Elie                                                                                                                                                                                                                                                                                                                                                                                                           

  • URGENT HELP PLEASE - drop index hangs on SAP

    Hi all,
    OS = Linux
    DBVersion = Oracle10.2.0.2
    Need some urgent help advise please on how to get around this problem.
    On a SAP system, am trying to drop six indexes, largest is 300MB and smallest is 50MB.
    I tried running drop index sapusername.index_name on the 50MB index via SQL*Plus and it seems to be taking forever. Can anyone please suggest if there is anything I can check on the database on why it is taking such a long time?
    I can leave it to run overnight but worried that when I come back the next day, it will still be hanged. Is there any quick way of dropping the index, .i.e. drop immediate ... :-)
    Am not using SAP's BRTOOLs as it is also hanging from there and the SAP-ADMIN had approved for the DBA to drop it from our end instead.
    Any response and advise on this will be very much appreciated.
    From Google'ing, I found some that mentioned that the fault could be because of the existence of the constraints on the table that I am dropping the index of.
    Checking the table, it has 17 SYS_ named constraints. None of these constraints have INDEX_NAME that refers to the indexes that am dropping.
    Should I disable the constraints and then run the drop index again?
    Thanks in advance.
    Edited by: user649596 on Apr 13, 2010 11:49 PM

    Should I disable the constraints and then run the drop index again?NO, certainly not !!
    Ask SAP Support on what methods you should use to diagnose the "hang" and what your next step(s) should be.
    Hemant K Chitale

  • Error message ResultSet.next not called

    I am a student learning java and am currently working on an assignement where I need to write jdbc programs that connect to an oracle database. The error message that I am getting is:
    ResultSet.next was not called.
    I do not know why I am getting this message. I wrote a simpler program to try to find the error, but I still got it again. Here's the part of the program:
    ResultSet rset = stmt.executeQuery ("SELECT billing_id_seq.NEXTVAL Next_SeqNumber "+
                             "FROM Dual");
    int sequenceNumber=rset.getInt("Next_SeqNumber");
         while(rset.next()){
    System.out.println(sequenceNumber);
    Any ideas would be helpful. Thanks very much!

    I am not really sure if it is okay to post the whole program on this message board, but here it is:
    import java.sql.*;     //Import Java's JDBC classes
    public class CalculateEnrollFinalGrades {
    public static void main(String[] args) {
    //Invoke the processEnrollRecords() method
         processEnrollRecords();
    } //end main()
    // The following method issues a SQL SELECT statement to the database that returns the section_id
    // and student_id for ALL rows from the enrollment_copy table. For each row received back in the
    // result set, a call should be made to the updateEnrollFinalGrade() method. See below for
    // information about what the that method does and what arguments it takes.
    public static void processEnrollRecords() {
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver"); // Load the Oracle JDBC driver
    catch (java.lang.ClassNotFoundException e) {
    System.out.println(e.getMessage());
    try {
    //Create the connection and statement objects
         Connection conn= DriverManager.getConnection("jdbc:oracle:oci8:@", "STUDENT","LEARN");
         Statement stmt=conn.createStatement();
    //Execute a query in the CTA database which returns section_id and student_id for all
    //rows of the enrollment_copy table
         int sectId=0;
         int studId=0;
         String sqlQuery="SELECT section_id, student_id "+
                   "FROM enrollment_copy";
         ResultSet rset= stmt.executeQuery(sqlQuery);
    //For each record returned in the ResultSet object, pass
    //the current connection object along with each section_id and student_id as
    //arguments to a method called updateEnrollFinalGrade()
         //while(rset.next()){
         sectId=rset.getInt("section_id");
         studId=rset.getInt("student_id");
         updateEnrollFinalGrade(conn, sectId, studId);
         //}//close while
    //Close all resources before the program ends
         //conn.close();      //should this be kept open???
         stmt.close();
         rset.close();
         return;
    catch (java.sql.SQLException e) { 
    System.out.println(e.getMessage());
    } // end processEnrollRecords()
    // calculate a final_grade for the specified student
    // and section, and then it updates the enrollment_copy table with the final_grade.
    private static void updateEnrollFinalGrade(Connection conn_p, int sectionId_p, int studentId_p) {
    try {
         Connection conn= DriverManager.getConnection("jdbc:oracle:oci8:@", "STUDENT","LEARN");
         Statement stmt=conn.createStatement();
         //query returns one row which is the final grade for the course for a particular student id and section.
         String sqlQuery2= "SELECT "+
         "ROUND(SUM((SUM(g.numeric_grade))/(COUNT(g.grade_type_code))*(gtw.percent_of_final_grade/100))) finGrade "+
         "FROM grade g, grade_type_weight gtw "+
         "where g.section_id=gtw.section_id AND g.grade_type_code=gtw.grade_type_code "+
         "AND g.student_id=? "+
         "AND g.section_id=? "+
         "GROUP BY gtw.percent_of_final_grade";
         PreparedStatement pstmt=conn.prepareStatement(sqlQuery2);
         pstmt.setInt(1, studentId_p);
         pstmt.setInt(2, sectionId_p);     
         ResultSet rsetGrade=pstmt.executeQuery();
         int finalGrade=rsetGrade.getInt("finGrade");
    //Once the final_grade has been calculated, use a different PreparedStatement object to
    //store it in the related enrollment_copy record. You need to use a Prepared
    //Statement
         String sqlUpdate=      "Update enrollment_copy "+
                        "SET final_grade=? "+
                        "WHERE student_id=? AND section_id=?";
         PreparedStatement pstmtUpdate=conn.prepareStatement(sqlUpdate);
         pstmtUpdate.setInt(1,finalGrade);
         pstmtUpdate.setInt(2,studentId_p);
         pstmtUpdate.setInt(3,sectionId_p);
         pstmtUpdate.executeUpdate();
         pstmt.close();
         pstmtUpdate.close();          
         stmt.close();
         rsetGrade.close();
         return;
    } // end try block
    catch (java.sql.SQLException e) { 
    System.out.println(e.getMessage());
    } //end updateEnrollFinalGrade()
    } //end CalculateEnrollFinalGrades
    Thanks very mush for your help.

  • Lenovo U410 Urgent Help Will Not Turn On

    Hello,
    Firstly i would like to thank anyone reading this post and taking the time out of their day to try and help my problem.
    I have a Lenovo U410 Ultrabook i've had my Laptop for around 1-2 years now and i have kept it in a very good condition there have been no issues with it. About 1 Week ago i was using my laptop left my room for about 30 minutes to have a shower and upon returning i saw that my Laptop was not charging i unplugged the charger from the laptop and place it back in nothing happened. so i turned off my laptop and unplugged the charger from the wall socket. since then i have not been able to turn my laptop back on i have tried but the led's flash twice when i tried to turn it back on. i have changed the fuse in my charger about 3 times with new fuses all 3AMP required and there is no difference at first i thought it was a problem with the charger but now im thinking otherwise and i'm quite worried. After searching around the internet for a fix i have pressed the power button for 30 seconds and the leds blinked 3 times and after trying various methods to turn it back on it has not been succesful i have even uplugged the battery and plugged it back in after removing the back cover. i have no warranty left as it expired and i was not able to renew it. if you have had any experience with similiar problems or any suggestions i would be very interested to hear what you think the next step for me would be. i dont have much money to invest into this laptop but i am prepared to spend some money if need be.
    Thank you for reading my extremely long post,
    Your's faithfully
     Lenovo U410 Urgent Help Will Not Turn On
    Akash Desai

    Dear Evanacoleman
    Welcome in Lenovo Community
    Kindly contact the below support to check your machine at one of our service centers so that the technical team there can decide if this is a miss use case or not 
    Let me know
    Thanks
    Alaa
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"! This will help the rest of the Community with similar issues identify the verified solution and benefit from it.
    Follow @LenovoForums on Twitter!

  • Control the loop of resultset.next( ); (method)

    Hai, guys
    I am using the ODBC database connection to (Excel Sheet) and i wanna get the records from it. My code is scucess but there is a problem in resultset.next() method.
    The thing is it retrieving all the data including the none data fields (null null), so finally it became a never ending loop.
    pls help me to get the data rang's records
    Statement stmnt = connexl.createStatement();
    String query = "SELECT * FROM [IJTS$]";
    stmnt.execute(query);
    ResultSet rsxl = stmnt.getResultSet();
    while(rsxl.next()) {
    String excelname = rsxl.getString(1);
    String excelcate = rsxl.getString(2);
    System.out.print(rsxl.getString(1));
    System.out.println(" "+rsxl.getString(2));
    }

    if null implies it has reached the last row, maybe you could check for null and break from the loop
    for example:
    while (rsxl.next()) {
      String excelname = rsxl.getString(1);
      String excelcate = rsxl.getString(2);
      if (excelname == null && excelcate == null) {
        break;
      } else {
        System.out.println(excelname + " " + excelcate);
    }

Maybe you are looking for