Making an exception abort the insert it triggered

I have a trigger that runs off of an insert statement. The trigger checks the fields inserted and, if necessary, throw a user-defined exception.
The exception is thrown correctly, but the insert statement is still added to the database. How can I prevent this particular statement from being inserted?

Here's an example of raising a user-defined exception in the trigger and then handling that exception in the calling program and continuing:
sql>create table t (c integer);
Table created.
sql>create or replace trigger t_trg
  2    before insert on t
  3    for each row
  4  declare
  5    e_myexception  exception;
  6    pragma exception_init(e_myexception, -20000);
  7  begin
  8    if :new.c = 2 then
  9      raise e_myexception;
10    end if;
11  end;
12  /
Trigger created.
sql>declare
  2    e_trigger_not_happy  exception;
  3    pragma exception_init(e_trigger_not_happy, -20000);
  4  begin
  5    for i in 1..3 loop
  6      begin
  7        insert into t values (i);
  8      exception
  9        when e_trigger_not_happy then
10          null;  -- continue with the loop
11      end; 
12    end loop;
13  end;
14  /
PL/SQL procedure successfully completed.
sql>select * from t;
        C
        1
        3

Similar Messages

  • NESTED EXCEPTION:ABORT. ----please help....

    Hi Experts,
    I've created a VC Model as below.
    Input form(vaue help)-->data service--
    >output table
    (to enter fiscal year period)                        (A query with no variables)             (tabular output)
    After deployment when i click on the value help,I get selection options but when i select an option(say lesser than and a relevent value) and then click 'SUBMIT' button on the input form,I get the following error message:
    "Application error : Nested exception.Failure to excute native function.Nested Exception.ABORT'
    The main need is to be able to display the results w.r.t the range of the fiscal year periods selected.
    Any help on tackling this problem will be appreciated,
    Regards,
    Sai.

    Hi Sai
    i think there is some problem with the selection of data service or input
    go through following links
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9326072e-0c01-0010-bc97-f72e93338101
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/63f2052e-0c01-0010-b9a2-e1f7457a7fbe
    https://wiki.sdn.sap.com/wiki/display/VC
    may helpful, if not solved list it
    Regards
    Pradeep P N

  • Opening Form in Insert mode but making a query at the same time

    My problem is that I want to open a Portal Form in Insert mode but at the same time making a query.
    If I call a form with patameters the form opens automatically in update mode (to be more precise with FORMSTATE = UPDATE_AND INSERT). In that case the insert button is not shown.
    I have come very close to a solution by running this code:
    BEGIN
    p_session.set_value(
    p_block_name => 'DEFAULT',
    p_attribute_name => '_FORM_STATE',
    p_value => 'QUERY_AND_INSERT');
    END;
    under "... before processing the form". The form-state changes to QUERY_AND_INSERT' and I get the record from the table that I want but I still see no insert button!
    I think that I can solve this problem in some table-triggers in the database but it would be interesting to know weather it is possible to do this in the portal.

    Kari,
    You can workaround the disappearing Insert button by creating a custom button instead.
    If you look at the "standard" Insert button code it looks like this:
    --- Type your PL/SQL code here...
    doInsert;--- This is the default handler
    --- ...and here, thanks...
    in the generated forms package doInsert just calls internal insert handler:
    procedure doINSERT
    is
    begin
    onINSERT(
    p_block_name => p_block_name ,
    p_object_name => p_object_name,
    p_instance => p_instance ,
    p_event_type => p_event_type ,
    p_user_args => p_user_args ,
    p_session => p_session);
    end doINSERT;
    If you add a custom button to your form and from PLSQL event combobox select "Custom", then copy&paste this code to the event code:
    onINSERT(
    p_block_name => p_block_name ,
    p_object_name => p_object_name,
    p_instance => p_instance ,
    p_event_type => p_event_type ,
    p_user_args => p_user_args ,
    p_session => p_session);
    You will get a custom button which does exactly what the Insert button does and it will not disappear from the screen.
    Thanks,
    Dmitry

  • Receiving error: Terminating app due to uncaught exception 'MFSQLiteException', reason: 'inserting mailbox url' abort() called terminating with uncaught exception of type NSException

    Today, I received this error when I re-added two email accounts that are tied in to my domain. The error is: "Terminating app due to uncaught exception 'MFSQLiteException', reason: 'inserting mailbox url' abort() called terminating with uncaught exception of type NSException"
    Two days ago, at my wits end with email issues, I googled how to Reset Mail.app and followed the recommendation found here: https://discussions.apple.com/thread/2266399?tstart=0
    That's. all. I've. done.
    What should I do correct the error I'm receiving when adding my email accounts?

    Launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad. Click Utilities, then Console in the icon grid.
    Step 1
    For this step, the title of the Console window should be All Messages. If it isn't, select
              SYSTEM LOG QUERIES ▹ All Messages
    from the log list on the left. If you don't see that list, select
              View ▹ Show Log List
    from the menu bar at the top of the screen.
    In the top right corner of the Console window, there's a search box labeled Filter. Initially the words "String Matching" are shown in that box. Enter the name of the crashed application or process. For example, if iTunes crashed, you would enter "iTunes" (without the quotes.)
    Each message in the log begins with the date and time when it was entered. Select the messages from the time of the last crash, if any. Copy them to the Clipboard by pressing the key combination command-C. Paste into a reply to this message by pressing command-V.
    ☞ The log contains a vast amount of information, almost all of which is irrelevant to solving any particular problem. When posting a log extract, be selective. A few dozen lines are almost always more than enough.
    Please don't indiscriminately dump thousands of lines from the log into this discussion.
    Please don't post screenshots of log messages—post the text.
    ☞ Some private information, such as your name, may appear in the log. Anonymize before posting.
    Step 2
    In the Console window, select
              DIAGNOSTIC AND USAGE INFORMATION ▹ User Diagnostic Reports
    (not Diagnostic and Usage Messages) from the log list on the left. There is a disclosure triangle to the left of the list item. If the triangle is pointing to the right, click it so that it points down. You'll see a list of crash reports. The name of each report starts with the name of the process, and ends with ".crash". Select the most recent report related to the process in question. The contents of the report will appear on the right. Use copy and paste to post the entire contents—the text, not a screenshot.
    I know the report is long, maybe several hundred lines. Please post all of it anyway.
    If you don't see any reports listed, but you know there was a crash, you may have chosen Diagnostic and Usage Messages from the log list. Choose DIAGNOSTIC AND USAGE INFORMATION instead.
    In the interest of privacy, I suggest that, before posting, you edit out the “Anonymous UUID,” a long string of letters, numbers, and dashes in the header of the report, if it’s present (it may not be.)
    Please don’t post other kinds of diagnostic report—they're very long and rarely helpful.

  • Custom SharePoint 2010 designer page throws "The data source control failed to execute the insert command" exception while adding the new item after the August 13, 2013 CU has installed

    We have the SharePoint Server 2010 with SP1 environment on which the custom SP2010 designer pages were working as expected before the
    August 13, 2013 CU has installed. But, getting the below exception while trying to add the new item after the CU has installed.
    Error while executing web part: System.NullReferenceException: Object reference not set to an instance of an object.     at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteInsert(IDictionary values)     at
    System.Web.UI.DataSourceView.Insert(IDictionary values, DataSourceViewOperationCallback callback) 3b64c3a0-48f3-4d4a-af54-d0a2fc4553cc
    06/19/2014 16:49:37.65  w3wp.exe (0x1240)                        0x1300 SharePoint Foundation        
     Runtime                        tkau Unexpected Microsoft.SharePoint.WebPartPages.DataFormWebPartException: The data source control
    failed to execute the insert command. 3b64c3a0-48f3-4d4a-af54-d0a2fc4553cc    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.InsertCallback(Int32 affectedRecords, Exception ex)     at System.Web.UI.DataSourceView.Insert(IDictionary
    values, DataSourceViewOperationCallback callback)     at Microsoft.SharePoint.WebPartPages.DataFormWebPart.FlatCommit()     at Microsoft.SharePoint.WebPartPages.DataFormWebPart.HandleOnSave(Object sender, EventArgs e)    
    at Microsoft.SharePoint.WebPartPages.DataFormWebPart.RaisePostBackEvent(String eventArgument)     at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)     at System.Web.UI.Page.ProcessRequestMain(Boolean
    inclu... 3b64c3a0-48f3-4d4a-af54-d0a2fc4553cc
    06/19/2014 16:49:37.65* w3wp.exe (0x1240)                        0x1300 SharePoint Foundation        
     Runtime                        tkau Unexpected ...deStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 3b64c3a0-48f3-4d4a-af54-d0a2fc4553cc
    I have tried changing the "DataSourceMode" as below, now the insert command is working, but update command is not working.
    <SharePoint:SPDataSource runat="server" DataSourceMode="ListItem" />
    Also, the lookup dropdown fields are displaying the value as "<a href="Daughterhttp://cpsp10/sites/Employees/_layouts/listform.aspx?PageType=4&ListId={8F62F444-FB6A-4F03-9522-C4696B45DCD1}&ID=10&RootFolder=*">Daughter</a>"
    instead of only "Daughter".
    Please provide the solution to get rid of this issue.
    Thanks
    Ramasubbu

    Try below:
    http://social.technet.microsoft.com/Forums/en-US/ae910269-3a0c-4506-844b-e8bc89d95b71/data-source-control-failed-to-execute-the-insert-command
    http://blog.jussipalo.com/2012/01/sharepoint-2010-data-source-control.html
    While there can be many causes for this generic error message, in my case the first parameter or ddwrt:DataBind function inside the SharePoint:FormFields element was
    'i' and I was working with an Edit Form. Changing it to
    'u' as it was with every other FormField fixed the issue.
    <SharePoint:FormField runat="server" id="ff1{$Pos}" ControlMode="Edit" FieldName="Esittaja" __designer:bind="{ddwrt:DataBind('u',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Esittaja')}"
    />
    Explanation:
    DataBind operation type parameters (the first parameter) are listed below:
    'i' stands for INSERT,
    'u' stands for UPDATE,
    'd' stands for DELETE.
    http://webcache.googleusercontent.com/search?q=cache:d9HHY4I7omgJ:thearkfloats.blogspot.com/2014/03/sharepoint-2010-data-source-control.html+&cd=4&hl=en&ct=clnk&gl=in
    If this helped you resolve your issue, please mark it Answered

  • After thread abort in Sandbox solution, the process is triggered again

    Hi,
    I am facing a problem of the process being triggered again, after thread abort of sandbox solution webpart on SharePoint 2013 Online.
    I have created a sandboxed solution webpart and deployed it on SharePoint 2013 Online. The webpart contains two buttons. The click event of the buttons is added in CreateChildControls methods.
     On the click of the first button, the process completes in 1 second.
    On click of the second button, the process takes more than 30 seconds to complete. As a result, the thread aborts and the process being aborted is triggered again. This creates duplicate processing.
    If I deploy the same solution on a SharePoint 2010 environment, the process is not triggered again after being aborted.
    I am fine with the thread being aborted, but I am not able to understand why the process is being triggered again.
    I want to stop the process from being triggered again after getting aborted.
    Any help would be appreciated.

    Hello !
           If no workflows are associated with the business object BUS2081 and the event POSTED, deactivate it at SWE2.
           Otherwise, you should resolve the cause for dump.To know the reason for dump, following transactions would be helpful : ST22,ST01,ST05 and ST12.
           Instead of checking at SWEQDEL transaction, check at SWEQADM transaction.
    Regards,
    S.Suresh.

  • The insert titles are making imovie crash

    i am trying to make a movie and when ever i try to put it into idvd it crashes so i deleted all the audio and it crashed then I deleted the insert titles and it didnt crash so its one or few insert titles messing it all up. is there a way to tell why they are doing it or I just dont know what to do HELP!!!!

    Same here. I was working on my macbook in iMovie '09 on a project on a seagate external hard drive and the events was on the hard drive also. I've never had any problems with it crashing on me until this project and I just used it the day before. After 15 minutes into the project i try adding another title in and it just kept crashing from then on out when i try to add a title and preview the project in full screen.
    To add to problem I unplugged the external hard drive (properly) and plugged it in my iMac imovie '11 and just added one title. Then I took the external hard drive back to my macbook and now the project won't even appear in imovie. And when i find the file itself in the hard drive and click to open it, it opens imovie but still no project. Somebody please help. I would greatly appreciated it.
    It wouldn't be problem to work on it on my imac expect i have other people using it through out the day and my macbook is easier for me to work on where ever i'm at.

  • PDE-PXC002 Program unit exception aborted due to unhandled exception (10050

    Im working on performing a new query when a user changes the value of a text item and then keys to the next item.
    Its very much in experimental stage atm but this is the code:
    BEGIN
         CLEAR_BLOCK(NO_VALIDATE);
         IF :system.block_status = 'CHANGED' THEN
              enter_query;
         END IF;     
    execute_query;
    END;
    When I run this in debugger the following warning is displayed, when I reach the line "enter_query":
    PDE-PXC002 Program unit exception aborted due to unhandled exception (100500).
    I have searched around but found nothing regarding this error message. Am I making a fundemental error here?

    Difficult to assess with the provided information - may I ask you to provide an extract of the PL/SQL code or feel free to contact us via http://pitss.com if you would like to discuss this rather over the phone. Thx MD

  • CSA 5.1, overlapping exceptions and the infamous Rootkit Lockdown Module

    Just looking for opinions and observations from the field:
    By default, the rule placed in the Rootkit Lockdown Module, has the following attributes:
    - Priority Deny
    - Acting as client or server
    - Any TCP & UDP services
    - Communicating with "@(remote)" host addresses
    A similar rule (though not the same, I know this, please don't point this out) in the Personal Firewall rule module, has these attributes:
    - Deny
    - Acting as server
    - Any TCP & UDP services
    - Communicating with any addresses
    There are a couple of other restrictive modules/rules that aren't disabled that when enabled would provide the same protection that the Rootkit Lockdown Module would provide. Any opinions or experiences that anyone would like to share on whether or not you've taken the Rootkit Lockdown Module out of test mode, added exceptions, possibly unattached other rule modules that were doing the same thing, etc.
    As well, does anyone have any further definition on the "@remote" addresses variable? Please be specific if you post a reply.

    I took the rootkit lockdown module out of test mode after making exceptions for the events that were triggering it and it seems to be working OK.
    Since the rootkit is dynamic, I'm going to leave it on unless it causes problems or there are events I can't make exceptions for.
    A have the Personal Firewall module enabled and I made a couple of exceptions for it since it is on all the time.
    I don't want any host acting as a server at any time unless there is a valid reason.
    I deploy all hosts in test mode until tuned.
    We are pretty standardized as far as machine hardware and settings go since we use all one brand and disk images to deploy. That makes for less surprises.
    HTH..
    Tom

  • How to do update instead of insert / cancel the insert

    Hello,
    we are porting an application, written originally for PostgreSQL, to Oracle. Most of the porting is pretty straightforward - change column types, simple trigger syntax changes etc.
    But we have a table (more precisely several tables) with a set of triggers, holding a tree-like structure. The point is in PostgreSQL we're using a RETURN NULL; behavior in BEFORE triggers, which means 'do nothing' to simplify thing.
    For example imagine tables A and B - and in a trigger on B we could have something like
    INSERT INTO A VALUES (id, ...)
    without a check on a uniqueness of the id value. And in a BEFORE INSERT trigger on A we have something like
    SELECT INTO c id FROM A where id = NEW.id;
    IF FOUND THEN
    UPDATE A SET .... WHERE id = NEW.id;
    -- cancel the insert without an exception
    RETURN NULL;
    END IF;
    which checks for existence of the row, and if it already exists it effectively replaces with UPDATE and cancels the INSERT without an exception.
    Is there something like this in Oracle or do I have to completely rewrite / refactor the whole thing?
    PS: We do have UNIQUE (more precisely PRIMARY KEY) on the columns - I am aware that this is not sufficient to enforce uniqueness in Oracle.

    There are a couple of ways that this could be accomplished in Oracle, although the though of an insert into table b also inserting or updating rows in table a makes me cringe. The easiest way only requires a trigger on table b.
    Something along the lines of:
    SQL> CREATE TABLE a (ID NUMBER PRIMARY KEY, descr VARCHAR2(10));
    Table created.
    SQL> CREATE TABLE b (id NUMBER, descr VARCHAR2(10), descr2 VARCHAR2(20));
    Table created.
    SQL> CREATE TRIGGER b_bi
      2     BEFORE INSERT ON b
      3     FOR EACH ROW
      4  BEGIN
      5     INSERT INTO a VALUES (:new.id, :new.descr);
      6  EXCEPTION
      7     WHEN DUP_VAL_ON_INDEX THEN
      8        UPDATE a SET descr = :new.descr
      9        WHERE id = :new.id;
    10  END;
    11  /
    Trigger created.
    SQL> INSERT INTO a VALUES(1, 'One');
    1 row created.
    SQL> COMMIT;
    Commit complete.
    SQL> INSERT INTO b VALUES(1, 'NewOne', 'New One');
    1 row created.
    SQL> SELECT * FROM a;
            ID DESCR
             1 NewOne
    SQL> INSERT INTO b VALUES(2, 'Two', 'Old Two');
    1 row created.
    SQL> SELECT * FROM a;
            ID DESCR
             1 NewOne
             2 Two
    SQL> COMMIT;
    Commit complete.If you really require the trigger on table a for other reasons, then you could do something like:
    SQL> RENAME a to a_table;
    Table renamed.
    SQL> CREATE VIEW a AS SELECT * FROM a_table;
    View created.
    SQL> CREATE TRIGGER a_ii
      2     INSTEAD OF INSERT ON a
      3     FOR EACH ROW
      4  BEGIN
      5     INSERT INTO a_table VALUES(:new.id, :new.descr);
      6  EXCEPTION
      7     WHEN DUP_VAL_ON_INDEX THEN
      8        UPDATE a_table SET descr = :new.descr
      9        WHERE id = :new.id;
    10  END;
    11  /
    Trigger created.
    SQL> CREATE OR REPLACE TRIGGER b_bi
      2     BEFORE INSERT ON b
      3     FOR EACH ROW
      4  BEGIN
      5     INSERT INTO a VALUES (:new.id, :new.descr);
      6  END;
      7  /
    Trigger created.
    SQL> INSERT INTO b VALUES(2, 'NewTwo', 'New Two');
    1 row created.
    SQL> SELECT * FROM a;
            ID DESCR
             1 NewOne
             2 NewTwo
    SQL> INSERT INTO b VALUES(3, 'Three','Third');
    1 row created.
    SQL> SELECT * FROM a;
            ID DESCR
             1 NewOne
             2 NewTwo
             3 ThreeNeither should require any changes to your application code. However, once agan, I think it is a really bad idea for triggers to have side efects on other tables.
    John

  • Using the Insert statement in a Java program without hardcoding the data

    hello.
    this is james mcfadden. i have developed a program called Demo.java, which is used with another program called QueryTableModel.java (a program that allows data to be viewed in a JTable). The Demo.java program displays a menu, connects to a database, allows the user to add data into the database and allows the user to view data that is already in the database. I have a problem with the Demo.java program. I have hardcoded the Insert statement in it. How do you use the Insert statement to put data into a database without hardcoding the data?
    import java.awt.*;//Contains all of the classes for creating user interfaces and for painting graphics and images
    import java.awt.event.*;//Provides interfaces and classes for dealing with different types of events fired by AWT components
    import javax.swing.*;//Provides a set of lightweight components that, to the maximum degree possible, work the same on all platforms
    import javax.swing.table.*;//Provides classes and interfaces for dealing with javax.swing.JTable
    import javax.swing.JOptionPane;//provides a class that makes it easy to pop up a standard dialog box that prompts users for a value or informs them of something
    import java.sql.*;//Provides the API for accessing and processing data stored in a data source using the Java programming language
    public class Demo extends JFrame{
       static String url = "jdbc:odbc:VideoLibrary";//a static variable that allows a connection to be made to a database called VideoLibrary
       static Statement stmt;//a static variable that allows a statement to be made once a connection is set up
       static Connection con;//a static interface that allows a connection to be made to a database
         //global variables
         JTextField hostField;//a class that allows a line of text to be changed
       JTextField queryField;//a class that allows a line of text to be changed
       QueryTableModel qtm;//a class that shows and changes regular two-dimensional tables of cells
       JComboBox comboBox;//a class that puts a button or editable field and a drop-down list together 
       public static void main(String args[]){     
          int choice=-1;//a variable of type int that is set to -1
              do{
             choice=getChoice();//invokes the method getChoice()
             if(choice!=0){
                getSelected(choice);//invokes the method getSelected(choice)
             }//end if
                   //if the user chooses 5, it will cause him or her to exit the system
          }while(choice!=5);//end do-while
          System.exit(0);//closes down the menu screen
       }//end main
       public static int getChoice(){
          String choice;//a variable of type string
          int ch;//a variable of type int
          choice = JOptionPane.showInputDialog(null,"1. Maintain product details\n"+"2. Maintain member details\n"+"3. Maintain rental details\n"+"4. View product, member and rental details\n"+"5. Log Off\n\n"+"Enter your choice");//asks the user for some input   
              ch = Integer.parseInt(choice);//a class that wraps a value of the primitive type int in an object     
              return ch;//a method that returns an integer value
       }//end getChoice
       public static void getSelected(int choice){   
              if(choice==1){
             maintainProductDetails();//invokes the method maintainProductDetails()
          }//end if
          if(choice==2){
             maintainMemberDetails();//invokes the method maintainMemberDetails()
          }//end if
              if(choice==3){
             maintainRentalDetails();//invokes the method maintainRentalDetails()
          }//end if
              if(choice==4){
                 Demo test = new Demo();//invokes the constructor Demo()
             test.setVisible(true);//shows the JTable component by marking it as visible
              }//end if
       }//end getSelected
       public static Connection getConnection(){
          try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//used to create a JDBC connection using a database
          }//end try
              catch(java.lang.ClassNotFoundException e){//causes an exception to be thrown when an application tries to load in a class through its string name
             System.err.print("ClassNotFoundException: ");//displays an error message
             System.err.println(e.getMessage());//returns the exception that was raised if an error occurred while attempting to load the ClassNotFoundException class
          }//end catch
          try {
             con=DriverManager.getConnection(url,"","");//tries to create a connection with the database using the DriverManager class
          }//end try
              catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());//returns an SQL error message
          }//end catch
          return con;
       }//end getConnection
       public static void maintainProductDetails(){
          Connection con = getConnection();//creates a connection with the database
          String  addProduct1, addProduct2, addProduct3, addProduct4, addProduct5, addProduct6, addProduct7, addProduct8, addProduct9, addProduct10;//string variables that represent information about the different types of product data that will be stored in the database
          addProduct1 = "insert into Product values (110001, 'The Killers - Sams Town', 5.00, 'G', 'CD', 2006)";
          addProduct2 = "insert into Product values (110002, 'Robbie Williams - Rudebox', 5.00, 'G', 'CD', 2006)";
          addProduct3 = "insert into Product values (110003, 'Razorlight - Razorlight', 5.00, 'G', 'CD', 2006)";
          addProduct4 = "insert into Product values (110004, 'My Chemical Romance - The Black Parade', 5.00, 'G', 'CD', 2006)";
          addProduct5 = "insert into Product values (110005, 'Snow Patrol - Eyes Open', 5.00, 'G', 'CD', 2006)";
          addProduct6 = "insert into Product values (110006, 'Scissor Sisters - Ta-Dah!', 5.00, 'G', 'CD', 2006)";
              addProduct7 = "insert into Product values (110007, 'Lovesounds - Justin Timberlake', 5.00, 'G', 'CD', 2006)";
          addProduct8 = "insert into Product values (110008, 'Director - We thrive on big cities', 5.00, 'G', 'CD', 2006)";
          addProduct9 = "insert into Product values (110009, 'Roxette - Roxette hits', 5.00, 'G', 'CD', 2006)";
          addProduct10 = "insert into Product values (110010, 'Pussy Cat Dolls - PCD', 5.00, 'G', 'CD', 2006)";
              try {
             stmt = con.createStatement();//Creates a Statement object for sending SQL statements to the database
                 //statements are allowed to be made once a connection is set up
                 stmt.executeUpdate(addProduct1);
             stmt.executeUpdate(addProduct2);
             stmt.executeUpdate(addProduct3);
             stmt.executeUpdate(addProduct4);
                   stmt.executeUpdate(addProduct5);
             stmt.executeUpdate(addProduct6);
                 stmt.executeUpdate(addProduct7);
             stmt.executeUpdate(addProduct8);
             stmt.executeUpdate(addProduct9);
             stmt.executeUpdate(addProduct10);
             stmt.close();//closes the Statement object
             con.close();//terminates the connection with the database
          }//end try
              catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());//returns an SQL error message
          }//end catch
       }//end maintainProductDetails
       public static void maintainMemberDetails(){
          Connection con = getConnection();//creates a connection with the database
          String addMember1, addMember2, addMember3, addMember4, addMember5, addMember6, addMember7, addMember8, addMember9, addMember10;//string variables that represent information about the member data that will be stored in the database
          addMember1 = "insert into Member values (1234, 'Ann', 'Smyth', 'Upper Killult, Falcarragh, Co. Donegal', '(074)-9135210', '(087)-2030172', #5/11/85#, #5/12/06#)";
          addMember2 = "insert into Member values (2345, 'John', 'Murphy', 'Lower Killult, Falcarragh, Co. Donegal', '(074)-9135211', '(087)-2030173', #4/12/85#, #6/13/06#)";
          addMember3 = "insert into Member values (1324, 'James', 'McFadden', 'Lower Ardsbeg, Gortahork, Co. Donegal', '(074)-9165314', '(087)-2030171', #4/11/85#, #6/14/06#)";
          addMember4 = "insert into Member values (1235, 'Frankie', 'Ferry', 'Ardsmore, Gortahork, Co. Donegal', '(074)-9165325', '(087)-2031234', #6/13/60#, #6/15/06#)";
          addMember5 = "insert into Member values (1236, 'Daniel', 'McKimm', 'Ballyness, Falcarragh, Co. Donegal', '(074)-9135212', '(087)-2030184', #5/14/73#, #6/16/06#)";
          addMember6 = "insert into Member values (2346, 'Stephen', 'Doohan', 'Ballyness, Falcarragh, Co. Donegal', '(074)-9135213', '(087)-2030185', #6/13/85#, #5/13/06#)";
          addMember7 = "insert into Member values (2347, 'James', 'Ferry', 'Meenlaragh, Gortahork, Co.Donegal', '(074)-9165360', '(087)-2031345', #9/12/85#, #5/14/06#)";
          addMember8 = "insert into Member values (2348, 'Liam', 'Cannon', 'Derryconner, Gortahork, Co.Donegal', '(074)-9165324', '(087)-2031456', #4/11/86#, #5/15/06#)";
          addMember9 = "insert into Member values (2401, 'Ciaran', 'Ferry', 'Brinalack, Gweedore, Co.Donegal', '(074)-9176425', '(087)-2030282', #9/12/85#, #5/16/06#)";
          addMember10 = "insert into Member values (2402, 'Ciaran', 'McGee', 'Derrybeg, Gweedore, Co.Donegal', '(074)-9176536', '(087)-2030393', #9/14/85#, #5/18/06#)";
          try{
             stmt = con.createStatement();//Creates a Statement object for sending SQL statements to the database
                   //statements are allowed to be made once a connection is set up
                   stmt.executeUpdate(addMember1);
             stmt.executeUpdate(addMember2);
             stmt.executeUpdate(addMember3);
                   stmt.executeUpdate(addMember4);
                   stmt.executeUpdate(addMember5);
                   stmt.executeUpdate(addMember6);
                   stmt.executeUpdate(addMember7);
                   stmt.executeUpdate(addMember8);
                   stmt.executeUpdate(addMember9);
                   stmt.executeUpdate(addMember10);
             stmt.close();//closes the Statement object
             con.close();//terminates the connection with the database
          }//end try
              catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());//returns an SQL error message
          }//end catch
       }//end maintainMemberDetails
         public static void maintainRentalDetails(){
          Connection con = getConnection();//creates a connection with the database
          String addRental1, addRental2, addRental3, addRental4, addRental5, addRental6, addRental7, addRental8, addRental9, addRental10;//string variables that represent information about the loan data that will be stored in the database
          addRental1 = "insert into Rental values (110001, 'The Killers - Sams Town', 1234, 'Ann', 'Smyth', #9/01/06#, #9/10/06#, 'Yes', 2.00)";
          addRental2 = "insert into Rental values (120001, 'Mission Impossible 3', 2345, 'John', 'Murphy', #9/02/06#, #9/09/06#, 'No', 0.00)";
          addRental3 = "insert into Rental values (130001, 'Need for Special Carbon', 1324, 'James', 'McFadden', #9/03/06#, #9/12/06#, 'Yes', 2.00)";
          addRental4 = "insert into Rental values (110002, 'Robbie Williams - Rudebox', 1235, 'Frankie', 'Ferry', #9/04/06#, #9/11/06#, 'No', 0.00)";
          addRental5 = "insert into Rental values (120015, 'Prime', 1236, 'Daniel', 'McKimm', #9/05/06#, #9/14/06#, 'Yes', 2.00)";
          addRental6 = "insert into Rental values (130015, 'FIFA 07', 2346, 'Stephen', 'Doohan', #9/06/06#, #9/13/06#, 'No', 0.00)";
          addRental7 = "insert into Rental values (110009, 'Roxette - Roxette hits', 2347, 'James', 'Ferry', #9/07/06#, #9/16/06#, 'Yes', 2.00)";
          addRental8 = "insert into Rental values (120003, 'The Break Up', 2348, 'Liam', 'Cannon', #9/08/06#, #9/15/06#, 'No', 0.00)";
          addRental9 = "insert into Rental values (130027, 'Gears of War', 2401, 'Ciaran', 'Ferry', #9/09/06#, #9/18/06#, 'Yes', 2.00)";
          addRental10 = "insert into Rental values (110021, 'Scooter - Mind the Gap', 2402, 'Ciaran', 'McGee', #9/10/06#, #9/17/06#, 'No', 0.00)";
          try{
             stmt = con.createStatement();//Creates a Statement object for sending SQL statements to the database
                   //statements are allowed to be made once a connection is set up
                   stmt.executeUpdate(addRental1);
             stmt.executeUpdate(addRental2);
             stmt.executeUpdate(addRental3);
                   stmt.executeUpdate(addRental4);
                   stmt.executeUpdate(addRental5);
                   stmt.executeUpdate(addRental6);
                   stmt.executeUpdate(addRental7);
                   stmt.executeUpdate(addRental8);
                   stmt.executeUpdate(addRental9);
                   stmt.executeUpdate(addRental10);
             stmt.close();//closes the Statement object
             con.close();//terminates the connection with the database
          }//end try
              catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());//returns an SQL error message
          }//end catch
       }//end maintainRentalDetails
       public Demo(){//a constructor
          super("Demo Test Frame");//overrides the constructor
          setSize(350, 200);//Resizes this component so that it has width of 350 and height of 200 
          comboBox = new JComboBox();//invokes the class JComboBox
          comboBox.addItem("jdbc:odbc:VideoLibrary");//adds the specified item to the end of the scrolling list
          qtm = new QueryTableModel();//invokes the class QueryTableModel
          JTable table = new JTable(qtm);//a class that shows and changes regular two-dimensional tables of cells
          JScrollPane scrollpane = new JScrollPane(table);//a class that provides a scrollable view of a lightweight component
          JPanel p1 = new JPanel();//a class that puts the combo box and query field in a panel
          p1.setLayout(new GridLayout(3, 2));//Sets the layout manager for this container
          p1.add(comboBox);//Appends the specified component to the end of this container
          p1.add(new JLabel("Enter your query: "));//Appends the specified component to the end of this container
          p1.add(queryField = new JTextField());//Appends the specified component to the end of this container
          p1.add(new JLabel("Click here to send: "));//Appends the specified component to the end of this container
          JButton jb = new JButton("Search");//a class that is an implementation of a "push" button
          jb.addActionListener(new ActionListener(){//Adds an ActionListener to the button
             public void actionPerformed(ActionEvent e){
                qtm.setHostURL();//invokes the method setHostURL
                qtm.setQuery(queryField.getText().trim());//invokes the method setQuery; and returns the text that is presented by this text component and returns a copy of the string, with leading and trailing whitespaces omitted
          } );//end addActionListener
          p1.add(jb);//Appends the specified component to the end of this container
          getContentPane().add(p1, BorderLayout.NORTH);//Returns the content pane
          getContentPane().add(scrollpane, BorderLayout.CENTER);//Returns the content pane
       }//end Demo
    }//end class Demo
    import java.sql.*;//Provides the API for accessing and processing data stored in a data source using the Java programming language
    import java.io.*;//Provides for system input and output through data streams, serialization and the file system
    import java.util.Vector;//provides a class that implements a growable array of objects
    import javax.swing.*;//Provides a set of lightweight components that, to the maximum degree possible, work the same on all platforms
    import javax.swing.table.*;//Provides classes and interfaces for dealing with javax.swing.JTable
    public class QueryTableModel extends AbstractTableModel{
         Vector cache;//a class that constructs an empty vector so that its internal data array has size 10 and its standard capacity increment is zero 
         int colCount;//a variable that counts the number of columns in the three tables
         String[] headers;//a class that represents character strings and all string literals in this program are implemented as instances of the String class
         Connection db;//an interface that allows a connection to be made to a database
         Statement statement;//an interface that allows executes the given SQL statement, which returns a single ResultSet object
         String currentURL;//a variable that allows the URL to be displayed in a combo box
         public QueryTableModel(){//a constructor
              cache=new Vector();//constructs an empty vector so that its internal data array has size 10 and its standard capacity increment is zero
              try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//used by opening a JDBC connection using an URL
              }//end try
              catch(Exception e){
                   System.out.println("problem loading the driver ");//an error message
              }//end catch
         }//end QueryTableModel
         public String getColumnName(int i){//Returns the designated column's name
            return headers;//returns the name of each column in the three table
         }//end getColumnName
         public int getColumnCount(){//Returns the number of columns in the column model
         return colCount;//returns the number of columns in the three tables
         }//end getColumnCount
         public int getRowCount(){//Returns the number of rows in this table's model
         return cache.size();//returns the number of components in the vector
         }//end getRowCount
         public Object getValueAt(int row, int col){//Returns the cell value at row and column
              return ((String[])cache.elementAt(row))[col];//Returns the component at the specified index
         }//end getValueAt
         public void setHostURL(){//sets the URL for the database
         String url = "jdbc:odbc:VideoLibrary";//a variable that allows a connection to be made to a database called VideoLibrary
         closeDB();//invokes the method closeDB()
              try{
    db=DriverManager.getConnection(url,"","");//tries to create a connection with the database using the DriverManager class
    statement=db.createStatement();//Creates a Statement object for sending SQL statements to the database
    }//end try
    catch(Exception e){
    System.out.println("Could not initialize the database.");//an error message
    e.printStackTrace();//a Throwable method that prints this throwable and it's backtrace to the standard error stream
    }//end catch
         }//end setHostURL
    public void setQuery(String q){//sets the kind of query that is to be sent to the database
              cache=new Vector();//constructs an empty vector so that its internal data array has size 10 and its standard capacity increment is zero
    String s="select * from Product";//a variable that causes all the data that is in the product table to be displayed in a JTable, which also means that all the data that is in both the member and rental tables can also be displayed in a JTable
              try{
                   ResultSet rs=statement.executeQuery(q);//an interface that is used to generate a database result set by executing a statement that queries the database
                   ResultSetMetaData meta=rs.getMetaData();//an interface that is used to get information about the types and properties of the columns in a ResultSet object
                   colCount=meta.getColumnCount();//Returns the number of columns in this ResultSet object
                   headers=new String[colCount];//gets the name of each column in the three tables
                   for(int h=1;h<=colCount;h++){
                        headers[h-1]=meta.getColumnName(h);//Get the designated column's name
                   }//end for
                   while(rs.next()){
                        String[] record=new String[colCount];//stores the name of each column in the three tables in memory
                        for(int i=0;i<colCount;i++){
                             record[i]=rs.getString(i+1);//Retrieves the value of the designated column in the current row of this ResultSet object as a String
                        }//end for
                        cache.addElement(record);//Adds the specified component to the end of this vector, increasing its size by one
                   }//end while
                   fireTableChanged(null);//Forwards the given notification event to all TableModelListeners that registered themselves as listeners for this table model
              }//end try
              catch(Exception e){
                   cache=new Vector();//constructs an empty vector so that its internal data array has size 10 and its standard capacity increment is zero
                   e.printStackTrace();//a Throwable method that prints this throwable and it's backtrace to the standard error stream
              }//end catch
         }//end setQuery
         public void initDB(String url){
              try{
                   db=DriverManager.getConnection(url);//tries to create a connection with the database using the DriverManager class
                   statement=db.createStatement();//Creates a Statement object for sending SQL statements to the database
              }//end try
              catch(Exception e){
                   System.out.println("Could not initialize the database.");//an error message
                   e.printStackTrace();//a Throwable method that prints this throwable and it's backtrace to the standard error stream
              }//end catch
         }//end initDB
         public void closeDB(){
              try{
                   if(statement!=null){
                   statement.close();//Releases this Statement object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed
                   }//end if
                   if(db!=null){
                   db.close();//Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released
                   }//end if
              }//end try
              catch(Exception e){
                   System.out.println("Could not close the current connection.");//an error message
                   e.printStackTrace();//a Throwable method that prints this throwable and it's backtrace to the standard error stream
              }//end catch
         }//end closeDB
    }//end class QueryTableModel

    here's an uncommented version of the code.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import javax.swing.JOptionPane;
    import java.sql.*;
    public class Demo extends JFrame{
       static String url = "jdbc:odbc:VideoLibrary";
       static Statement stmt;
       static Connection con;
       JTextField hostField;
       JTextField queryField;
       QueryTableModel qtm;
       JComboBox comboBox;
       public static void main(String args[]){
          int choice=-1;
          do{
             choice=getChoice();
             if(choice!=0){
                getSelected(choice);
          }while(choice!=5);
          System.exit(0);
       public static int getChoice(){
          String choice;
          int ch;
          choice = JOptionPane.showInputDialog(null,"1. Maintain product details\n"+"2. Maintain member details\n"+"3. Maintain rental details\n"+"4. View product, member and rental details\n"+"5. Log Off\n\n"+"Enter your choice"); 
          ch = Integer.parseInt(choice);    
          return ch;
       public static void getSelected(int choice){   
          if(choice==1){
             maintainProductDetails();
          if(choice==2){
             maintainMemberDetails();
          if(choice==3){
             maintainRentalDetails();
          if(choice==4){
             Demo test = new Demo();
             test.setVisible(true);
       public static Connection getConnection(){
          try {
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          catch(java.lang.ClassNotFoundException e){
             System.err.print("ClassNotFoundException: ");
             System.err.println(e.getMessage());
          try {
             con=DriverManager.getConnection(url,"","");
          catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());
          return con;
       public static void maintainProductDetails(){
          Connection con = getConnection();
          String  addProduct1, addProduct2, addProduct3, addProduct4, addProduct5, addProduct6, addProduct7, addProduct8, addProduct9, addProduct10;
          addProduct1 = "insert into Product values (110001, 'The Killers - Sams Town', 5.00, 'G', 'CD', 2006)";
          addProduct2 = "insert into Product values (110002, 'Robbie Williams - Rudebox', 5.00, 'G', 'CD', 2006)";
          addProduct3 = "insert into Product values (110003, 'Razorlight - Razorlight', 5.00, 'G', 'CD', 2006)";
          addProduct4 = "insert into Product values (110004, 'My Chemical Romance - The Black Parade', 5.00, 'G', 'CD', 2006)";
          addProduct5 = "insert into Product values (110005, 'Snow Patrol - Eyes Open', 5.00, 'G', 'CD', 2006)";
          addProduct6 = "insert into Product values (110006, 'Scissor Sisters - Ta-Dah!', 5.00, 'G', 'CD', 2006)";
          addProduct7 = "insert into Product values (110007, 'Lovesounds - Justin Timberlake', 5.00, 'G', 'CD', 2006)";
          addProduct8 = "insert into Product values (110008, 'Director - We thrive on big cities', 5.00, 'G', 'CD', 2006)";
          addProduct9 = "insert into Product values (110009, 'Roxette - Roxette hits', 5.00, 'G', 'CD', 2006)";
          addProduct10 = "insert into Product values (110010, '***** Cat Dolls - PCD', 5.00, 'G', 'CD', 2006)";
          try {
             stmt = con.createStatement();
             stmt.executeUpdate(addProduct1);
             stmt.executeUpdate(addProduct2);
             stmt.executeUpdate(addProduct3);
             stmt.executeUpdate(addProduct4);
             stmt.executeUpdate(addProduct5);
             stmt.executeUpdate(addProduct6);
             stmt.executeUpdate(addProduct7);
             stmt.executeUpdate(addProduct8);
             stmt.executeUpdate(addProduct9);
             stmt.executeUpdate(addProduct10);
             stmt.close();
             con.close();
          catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());
       public static void maintainMemberDetails(){
          Connection con = getConnection();
          String addMember1, addMember2, addMember3, addMember4, addMember5, addMember6, addMember7, addMember8, addMember9, addMember10;
          addMember1 = "insert into Member values (1234, 'Ann', 'Smyth', 'Upper Killult, Falcarragh, Co. Donegal', '(074)-9135210', '(087)-2030172', #5/11/85#, #5/12/06#)";
          addMember2 = "insert into Member values (2345, 'John', 'Murphy', 'Lower Killult, Falcarragh, Co. Donegal', '(074)-9135211', '(087)-2030173', #4/12/85#, #6/13/06#)";
          addMember3 = "insert into Member values (1324, 'James', 'McFadden', 'Lower Ardsbeg, Gortahork, Co. Donegal', '(074)-9165314', '(087)-2030171', #4/11/85#, #6/14/06#)";
          addMember4 = "insert into Member values (1235, 'Frankie', 'Ferry', 'Ardsmore, Gortahork, Co. Donegal', '(074)-9165325', '(087)-2031234', #6/13/60#, #6/15/06#)";
          addMember5 = "insert into Member values (1236, 'Daniel', 'McKimm', 'Ballyness, Falcarragh, Co. Donegal', '(074)-9135212', '(087)-2030184', #5/14/73#, #6/16/06#)";
          addMember6 = "insert into Member values (2346, 'Stephen', 'Doohan', 'Ballyness, Falcarragh, Co. Donegal', '(074)-9135213', '(087)-2030185', #6/13/85#, #5/13/06#)";
          addMember7 = "insert into Member values (2347, 'James', 'Ferry', 'Meenlaragh, Gortahork, Co.Donegal', '(074)-9165360', '(087)-2031345', #9/12/85#, #5/14/06#)";
          addMember8 = "insert into Member values (2348, 'Liam', 'Cannon', 'Derryconner, Gortahork, Co.Donegal', '(074)-9165324', '(087)-2031456', #4/11/86#, #5/15/06#)";
          addMember9 = "insert into Member values (2401, 'Ciaran', 'Ferry', 'Brinalack, Gweedore, Co.Donegal', '(074)-9176425', '(087)-2030282', #9/12/85#, #5/16/06#)";
          addMember10 = "insert into Member values (2402, 'Ciaran', 'McGee', 'Derrybeg, Gweedore, Co.Donegal', '(074)-9176536', '(087)-2030393', #9/14/85#, #5/18/06#)";
          try{
             stmt = con.createStatement();
             stmt.executeUpdate(addMember1);
             stmt.executeUpdate(addMember2);
             stmt.executeUpdate(addMember3);
             stmt.executeUpdate(addMember4);
             stmt.executeUpdate(addMember5);
             stmt.executeUpdate(addMember6);
             stmt.executeUpdate(addMember7);
             stmt.executeUpdate(addMember8);
             stmt.executeUpdate(addMember9);
             stmt.executeUpdate(addMember10);
             stmt.close();
             con.close();
          catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());
       public static void maintainRentalDetails(){
          Connection con = getConnection();
          String addRental1, addRental2, addRental3, addRental4, addRental5, addRental6, addRental7, addRental8, addRental9, addRental10;
          addRental1 = "insert into Rental values (110001, 'The Killers - Sams Town', 1234, 'Ann', 'Smyth', #9/01/06#, #9/10/06#, 'Yes', 2.00)";
          addRental2 = "insert into Rental values (120001, 'Mission Impossible 3', 2345, 'John', 'Murphy', #9/02/06#, #9/09/06#, 'No', 0.00)";
          addRental3 = "insert into Rental values (130001, 'Need for Special Carbon', 1324, 'James', 'McFadden', #9/03/06#, #9/12/06#, 'Yes', 2.00)";
          addRental4 = "insert into Rental values (110002, 'Robbie Williams - Rudebox', 1235, 'Frankie', 'Ferry', #9/04/06#, #9/11/06#, 'No', 0.00)";
          addRental5 = "insert into Rental values (120015, 'Prime', 1236, 'Daniel', 'McKimm', #9/05/06#, #9/14/06#, 'Yes', 2.00)";
          addRental6 = "insert into Rental values (130015, 'FIFA 07', 2346, 'Stephen', 'Doohan', #9/06/06#, #9/13/06#, 'No', 0.00)";
          addRental7 = "insert into Rental values (110009, 'Roxette - Roxette hits', 2347, 'James', 'Ferry', #9/07/06#, #9/16/06#, 'Yes', 2.00)";
          addRental8 = "insert into Rental values (120003, 'The Break Up', 2348, 'Liam', 'Cannon', #9/08/06#, #9/15/06#, 'No', 0.00)";
          addRental9 = "insert into Rental values (130027, 'Gears of War', 2401, 'Ciaran', 'Ferry', #9/09/06#, #9/18/06#, 'Yes', 2.00)";
          addRental10 = "insert into Rental values (110021, 'Scooter - Mind the Gap', 2402, 'Ciaran', 'McGee', #9/10/06#, #9/17/06#, 'No', 0.00)";
          try{
             stmt = con.createStatement();
             stmt.executeUpdate(addRental1);
             stmt.executeUpdate(addRental2);
             stmt.executeUpdate(addRental3);
             stmt.executeUpdate(addRental4);
             stmt.executeUpdate(addRental5);
             stmt.executeUpdate(addRental6);
             stmt.executeUpdate(addRental7);
             stmt.executeUpdate(addRental8);
             stmt.executeUpdate(addRental9);
             stmt.executeUpdate(addRental10);
             stmt.close();
             con.close();
          catch(SQLException ex) {
             System.err.println("SQLException: " + ex.getMessage());
       public Demo(){
          super("Demo Test Frame");
          setSize(350, 200);
          comboBox = new JComboBox();
          comboBox.addItem("jdbc:odbc:VideoLibrary");
          qtm = new QueryTableModel();
          JTable table = new JTable(qtm);
          JScrollPane scrollpane = new JScrollPane(table);
          JPanel p1 = new JPanel();
          p1.setLayout(new GridLayout(3, 2));
          p1.add(comboBox);
          p1.add(new JLabel("Enter your query: "));
          p1.add(queryField = new JTextField());
          p1.add(new JLabel("Click here to send: "));
          JButton jb = new JButton("Search");
          jb.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e){
                qtm.setHostURL();
                qtm.setQuery(queryField.getText().trim());
          p1.add(jb);
          getContentPane().add(p1, BorderLayout.NORTH);
          getContentPane().add(scrollpane, BorderLayout.CENTER);
    import java.sql.*;
    import java.io.*;
    import java.util.Vector;
    import javax.swing.*;
    import javax.swing.table.*;
    public class QueryTableModel extends AbstractTableModel{
         Vector cache; 
         int colCount;
         String[] headers;
         Connection db;
         Statement statement;
         String currentURL;
         public QueryTableModel(){
              cache=new Vector();
              try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              catch(Exception e){
                   System.out.println("problem loading the driver ");
         public String getColumnName(int i){
            return headers;
         public int getColumnCount(){
         return colCount;
         public int getRowCount(){
         return cache.size();
         public Object getValueAt(int row, int col){
              return ((String[])cache.elementAt(row))[col];
         public void setHostURL(){
         String url = "jdbc:odbc:VideoLibrary";
         closeDB();
              try{
    db=DriverManager.getConnection(url,"","");
    statement=db.createStatement();
    catch(Exception e){
    System.out.println("Could not initialize the database.");
    e.printStackTrace();
    public void setQuery(String q){
              cache=new Vector();
    String s="select * from Product";
              try{
                   ResultSet rs=statement.executeQuery(q);
                   ResultSetMetaData meta=rs.getMetaData();
                   colCount=meta.getColumnCount();
                   headers=new String[colCount];
                   for(int h=1;h<=colCount;h++){
                        headers[h-1]=meta.getColumnName(h);
                   while(rs.next()){
                        String[] record=new String[colCount];
                        for(int i=0;i<colCount;i++){
                             record[i]=rs.getString(i+1);
                        cache.addElement(record);
                   fireTableChanged(null);
              catch(Exception e){
                   cache=new Vector();
                   e.printStackTrace();
         public void initDB(String url){
              try{
                   db=DriverManager.getConnection(url);
                   statement=db.createStatement();
              catch(Exception e){
                   System.out.println("Could not initialize the database.");
                   e.printStackTrace();
         public void closeDB(){
              try{
                   if(statement!=null){
                   statement.close();
                   if(db!=null){
                   db.close();
              catch(Exception e){
                   System.out.println("Could not close the current connection.");
                   e.printStackTrace();

  • Exception with the type CX_SY_OPEN_SQL_DB occured and was not handled

    Hi Champs,
    I am working on an interface which picks up file uploaded in a XI server and process it. The Function module used is a Z function module, developed locally.
    I am uploading an tab limited file in XI server and a background job processes the file. The tab limited file contains Payelement Transaction ID as primary key.  And after validation of elements like WBS element, cost center etc the file is posted using BAPI BAPI_ACC_DOCUMENT_POST. And all the Payelement Trans Ids are also replicated in a Z table, with there status viz. Success or Error or Warning.
    After background job was completed, we found in Tcode SXMB_MONI that the file was in error.
    The error message was :
    Error during proxy processing An exception with the type CX_SY_OPEN_SQL_DB occurred, but was neither handled locally, nor declared in a RAISING clause The system tried to insert a data record, even though a data record with the same primary key already exists.
    But to my dismay, I found that some of the Payelement Trans Ids were posted for a document and are also replicated in my Z table.
    From the error it seems that we are inserting a record that is already there in the document. I have checked in for BAPI's input parameter, there is nothing duplicate.
    Note: Insertion in Z table is made after the BAPI BAPI_ACC_DOCUMENT_POST.
    Can you help me out in this issue as it is now getting into veins
    Reagrds,
    Nishant

    Hi,
    Even we have faced this kind of issue. In order to solve this just write the following code:
    1) Before inserting records in to Z table, write one select query on that table with primary key fields in where clause. Pass the value that are returned by BAPI BAPI_ACC_DOCUMENT_POST to the key field.
    2) If sy-subrc = 4, insert records in Z table else Continue and dont insert records in this table. 
    This will solve your problem.
    Regards,
    Prashant

  • Null pointer exception in the morning

    Hi all,
    I have built a custom JSP DYN page application that for the most part works ok. However, I've found on occassion that when I arrive in the morning, the application errors out in our dev and qa portal environments with a null pointer exception type error. The error info in the trace log file is below. I've found that if I redeploy a fresh copy of the application to the dev portal server, it makes the problem go away. In our QA environment, if I restart the portal the problem goes away. In other words, I'm not making any changes to the code to make the problem go away. It's like something has gone awry in the portal.
    The trace log file isn't really telling me anything significant. Maybe someone out there has heard of this problem and knows what I'm doing wrong.
    Here's the error info:
    #00505696599B0094000000AD00005D340004B89E1EAEF68E#1328889165892#com.sap.portal.prt.request#sap.com/irj#com.sap.portal.prt.request#SpaldST#25597##n/a##71ec264b53fe11e1b83900505696599b#Thread[PRT-Async 3,5,PRT-Async]##0#0#Error#1#/System/Server#Java###Exception in PortalRequestManager.dispatchRequest without timeout
    [EXCEPTION]
    #1#com.sapportals.portal.prt.component.PortalComponentException: Error occurs during the compilation of java generated from the jsp
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:116)
         at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:355)
         at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:680)
         at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:133)
         at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:355)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:310)
         at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:285)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
         at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: com.sapportals.portal.prt.servlets_jsp.server.compiler.CompilingException: Error occurs during the rendering of jsp component
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2215)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:141)
         ... 26 more
    #1.5 #00505696599B0094000000AE00005D340004B89E1EAEF9AF#1328889165892#com.sap.portal.portal#sap.com/irj#com.sap.portal.portal#SpaldST#25597##n/a##71ec264b53fe11e1b83900505696599b#Thread[PRT-Async 3,5,PRT-Async]##0#0#Error#1#/System/Server#Java###Exception ID:10:52_10/02/12_0002_38939350
    [EXCEPTION]
    #1#com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Resource
    Component : pcd:portal_content/com.gbe.mobile_device_request/com.gbe.roles/com.gbe.mobile_device_request.roles.mobility_request/com.gbe.mobile_device_request.worksets.mobility_request/com.gbe.mobile_device_request.iviews.mobile_device_request
    Component class : com.graybar.portal.mdr.requester.MobileDeviceRequest
    User : SpaldST
         at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:973)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:444)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:680)
         at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:133)
         at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:355)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:310)
         at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:285)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
         at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: com.sapportals.portal.prt.component.PortalComponentException: Error occurs during the compilation of java generated from the jsp
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:116)
         at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:355)
         at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
         ... 23 more
    Caused by: com.sapportals.portal.prt.servlets_jsp.server.compiler.CompilingException: Error occurs during the rendering of jsp component
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2215)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:141)
         ... 26 more

    Here's the rest:
    #1.5 #00505696599B0094000000B200005D340004B89E1EAF0555#1328889165892#com.sap.portal.prt.runtime#sap.com/irj#com.sap.portal.prt.runtime#SpaldST#25597##n/a##71ec264b53fe11e1b83900505696599b#Thread[PRT-Async 3,5,PRT-Async]##0#0#Error##Java###10:52_10/02/12_0002_38939350
    [EXCEPTION]
    #1#com.sapportals.portal.prt.servlets_jsp.server.compiler.CompilingException: Error occurs during the rendering of jsp component
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2215)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:141)
         at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:355)
         at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:680)
         at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:133)
         at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:355)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:310)
         at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:285)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
         at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: com.sapportals.portal.prt.servlets_jsp.server.compiler.CompilingException: Error in java compiling
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2206)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:141)
         at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:355)
         at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:680)
         at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:133)
         at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:355)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:310)
         at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:285)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
         at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
         at java.lang.Thread.run(Thread.java:534)
    Caused by: java.lang.NullPointerException
         at com.sapportals.portal.prt.servlets_jsp.server.compiler.impl.J2eeCompiler_6_30.compileExternal(J2eeCompiler_6_30.java:320)
         at com.sapportals.portal.prt.servlets_jsp.server.compiler.impl.J2eeCompiler_6_30.compile(J2eeCompiler_6_30.java:676)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2186)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:81)
         at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:140)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:291)
         at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:141)
         at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:355)
         at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:680)
         at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:133)
         at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:355)
         at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:310)
         at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:285)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:375)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:388)
         at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
         at java.lang.Thread.run(Thread.java:534)

  • TFS Integration Platform Error while Syncing - Caught and converted, The request was aborted: The request was canceled

    Hello,
    We are doing a 2-way version control sync between TFS 2013 servers. 
    TFS A - Project A is getting synched with TFS B - Project A.
    TFS A - Project A has got all the code and files, whereas TFS B - Project A is empty.
    Previously we have synced TFS 2013 projects across servers with out any error or issues. Today we came across an issue (check log at end of post) and hope Microsoft can
    provide some guidance on this. Following is the problem we are facing today:
    We have configured the TFS Integration platform tool for VC - 2 way sync and started the migration. Current
    status is that the discovery, analysis is complete and migration is half way when I started to get such errors
    (check log at end of post) .
    Note that the migration has not stopped...
    After doing some research and googling I understand that the reason for this error is that by default if
    an individual file transfer cannot complete 16MB in 5 minutes, the operation will fail. And the solution to this is to modify
    chunk size in the file of "TfsMigrationShell.exe.config". I have few questions regarding this...
    Question 1:Is
    above understanding and solution correct? I also notice that this error appears for every huge file (approx >30MB), is there any timeout setting at the target server? Is this something to be changed at the Tool level config or the Target IIS level
    config?
    Question 2: Suppose
    I do not change the config setting, then huge files are skipped due to this error. However, after the migration of the other files is finished, then, will the tool retry to sync the skipped (huge) files? Or has it skipped them forever?
    Question 3:
    Suppose I modify
    chunk size in the file of "TfsMigrationShell.exe.config", then, which of the following do I need to do (give me the best solution among the 3 below)
    a) Do I need
    to restart the migration (by deleting and recreating the project on the 2nd TFS Server and re-starting migration)? 
    b) Do
    I need to create a new configuration and restart migration?
    c) Do I need to restart the sync service?
    The concern here is that we have got 3 more jobs (TFS
    Integration tool configurations) running parallelly that
    is syncing Work Items & VC of other TFS projects and want to make sure that restarting the TFS Integration Job Service will not have any negative impact on the other jobs as well as no negative impact on the current migration job...
    Microsoft, Please advice. Thanks!
    Log:
    [1/21/2015 10:55:39 AM] AsyncUploadFileState.Completed -- caught and converted:
    [1/21/2015 10:55:39 AM] Microsoft.TeamFoundation.VersionControl.Client.VersionControlException: C:\TfsIPData\10\ications\MDM Folder\Binaries\v9.5\DMS Web Service Release 1.5.zip: The request was aborted: The request was canceled. ---> System.Net.WebException: The request was aborted: The request was canceled. ---> System.IO.IOException: Cannot close stream until all bytes are written.
    [1/21/2015 10:55:39 AM] at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
    [1/21/2015 10:55:39 AM] --- End of inner exception stack trace ---
    [1/21/2015 10:55:39 AM] at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting)
    [1/21/2015 10:55:39 AM] at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
    [1/21/2015 10:55:39 AM] at System.Net.ConnectStream.Dispose(Boolean disposing)
    [1/21/2015 10:55:39 AM] at System.IO.Stream.Close()
    [1/21/2015 10:55:39 AM] at System.IO.Stream.Dispose()
    [1/21/2015 10:55:39 AM] at Microsoft.TeamFoundation.VersionControl.Client.FileUploader.UploadChunk(FileStream fileContentStream, Int64 end)
    [1/21/2015 10:55:39 AM] --- End of inner exception stack trace ---
    [1/21/2015 10:55:39 AM] at Microsoft.TeamFoundation.VersionControl.Client.Workspace.EndUploadFile(IAsyncResult asyncResult, PendingChange& pendingChange, Byte[]& uploadedContentBaselineFileGuid, Int64& uncompressedLength)
    [1/21/2015 10:55:39 AM] at Microsoft.TeamFoundation.VersionControl.Client.Workspace.AsyncUploadFileState.Completed(IAsyncResult asyncResult)

    Hi Charles,
    I have been doing in depth research and testing of this and here are my findings:
    Replies to your points:
    1) It failed with UploadChunkSize value change. Tried 1MB, 500KB, even 100KB. Fails with same error! Is there any other setting we can change for the timeouts at the target TFS server also?
    2) The huge files are not skipped. The migration loops on the failed files and doesn't continue to process the next lot of files. So the migration is blocked on the huge files.
    3) OK. Thanks. 
    Please see below the finding on when migration succeeds and when it fails:-
    Scenario 1:
    a) Where Migration fails:
    TFS A is in India and TFS B is in UK. Both TFS are on different domain. Migration tool is installed on same machine as TFS A. There is a firewall that allows the access from TFS A machine to TFS B machine. The migration tool fails to work in this scenario
    when it encounters a file size approx > 8MB. I tried setting the UploadChunkSize value to 100KB. Yet it failed!
    b) Where Migration works:
    However, if the files are approx less than 3MB then the migration works without any errors.
    Scenario 2 where TFS migration tool works:
    TFS A is in India and TFS B is also in India (located closeby). Both TFS are on different domain. Migration tool is installed on same machine as TFS A. There is no firewall in this case. No changes were made to UploadChunkSize value and files with size
    of 10's and 100's of MBs got synced without any issue.
    Questions
    Question 1: Can we conclude now that there is some issue with the firewall or network in case of scenario 1? As mentioned above Scenario 1 works if file size is less then approx 3MB.
    Question 2: Is there any timeout setting on the Target TFS server which can be set so that it waits for the file without timing out?
    Thanks for any help...

  • Getting Exception in the select clause - Very Urgent

    Hi,
        I have given the below statement but it is showing the exception.
      SELECT *
             FROM (lv_tab_name)
             INTO CORRESPONDING FIELDS OF TABLE <fs_1>.
    If I execute the above select statement it is showing the below exception.
    Exception CX_SY_NO_HANDLER triggered.
    An exception with the type CX_SY_OPEN_SQL_DB occurred.
    It is working very well if I mention the few field names.
    Please let me know the possible reasons.
    Thanks,
    Suvin

    Thanks much for your quick response.
    I have tried with what you mentioned but it is not working.
    Please find my code below.
    *Declarations
    DATA: ddfields TYPE STANDARD TABLE OF ddfield.
      DATA: ls_ddfields TYPE ddfield.
      DATA: lt TYPE lvc_t_fcat.
      DATA: ls TYPE lvc_s_fcat.
      DATA: lv_tab_name TYPE dd02l-tabname.
    Data References
      DATA: lt_data TYPE REF TO data.
      DATA: new_line TYPE REF TO data.
    Field Symbols
      FIELD-SYMBOLS: <fs_1> TYPE ANY TABLE.
      FIELD-SYMBOLS: <fs_data> TYPE REF TO data.
      FIELD-SYMBOLS: <fs_2> TYPE ANY,
                     <l_field> TYPE ANY.
    Get the fields of the database table, here i am passing the table name
      CALL FUNCTION 'DD_NAMETAB_TO_DDFIELDS'
        EXPORTING
      KEYFIELDS       = 'X'
      NULLABLE        = 'X'
            tabname        = lv_tab_name
        TABLES
            ddfields        = ddfields.
      LOOP AT ddfields INTO ls_ddfields.
        ls-fieldname = ls_ddfields-fieldname.
        APPEND ls TO lt.
      ENDLOOP.
    *Assigning Field-Symbol to our dynamic internal table
      ASSIGN lt_data TO <fs_data>.
    Calling the method CREATE_DYNAMIC_TABLE
      CALL METHOD cl_alv_table_create=>create_dynamic_table
        EXPORTING
          it_fieldcatalog           = lt
        IMPORTING
          ep_table                  = <fs_data>
        EXCEPTIONS
          generate_subpool_dir_full = 1
          OTHERS                    = 2.
      IF sy-subrc EQ 0.
        ASSIGN <fs_data>->* TO <fs_1>.
    Create a work area for the dynamic table.
        CREATE DATA new_line LIKE LINE OF <fs_1>.
    A field-symbol to access that work area
        ASSIGN new_line->*  TO <fs_2>.
      ENDIF.
    Selecting the Data from the respective table.
      SELECT *
             FROM (lv_tab_name)
             INTO CORRESPONDING FIELDS OF TABLE <fs_1>.
    Please advise..it is very urgent.
    Thanks,
    Suvin

Maybe you are looking for

  • How do I use AppleScript Editor to assign genders in Address Book?

    I really wish Address Book was simple & just had a field for gender--but whatever. There are several things I want to do; if anyone can give my some guidance or maybe direct me to somewhere that can help me with these scripts, that'd be great. I'll j

  • WebUtil and file transfer/manipulation

    Hello, Currently we are running most of our Forms 6i applications through a citrix server where we have MS Office installed. We use the OLE2 package within Forms to create documents and spreadsheets. We are looking to upgrade to Forms 9i and may be r

  • Recommendations for a HP LJ 3015 Replacement...

    It would be a whole lot easier if I just tossed these two 3015's out and replaced them... Anyone have a suggestion on what I should purchase? Actually they are in perfect shape... Send me your address and I will give them to you. EDIT... I have been

  • ORA_FFI and complex datatypes

    Hi all, I must call a function from an API function in a dll file , and the documentation of the arguments of the function includes a "struct" datatype which is defined like this : typedef struct { unsigned long ulSize; unsigned char RData[16]; } RSP

  • Amount conversion

    Hi, I have requirement like this.Input file is coming and data is posted to SAP.But if that amount part is suppose 1037135 like this.Instead of posting amount like 10371.35 it is posting like 270.74. Please provide the answers and kindly need ful. Th