Follow by Email

Monday, September 8, 2014

Eclipse saving workbench state hangs

I followed the below instructions in the blog

  • Make a backup of your “.metadata“-folder (very important!!) (this folder inside teh eclipse workbench/workspace folder)
  • navigate into the “.plugins“-folder located inside “.metadata
  • delete the folder “org.eclipse.ui.workbench
  • startup eclipse again and check if there is still everything you need


  • http://blog.elitecoderz.net/repair-eclipse-workbencheclipse-workbench-reparieren/2009/06/comment-page-1/#comment-6693

    and the problem was resolved , now when I close my eclipse it doesn't hang at saving workbench state.

    infact I have noticed that the eclipse is starting a closing faster than before.

    Usefull Oracle Database Queries


    Get the details of important oracle parameters such as "PASSWORD_LOCK_TIME" and "SESSIONS_PER_USER" etc

    select * from dba_profiles order by profiles

    Get the Name of the oracle instance

    SELECT sys_context('USERENV','DB_NAME') AS Instance FROM dual;
    Get the name of the current oracle instance and user id

     select name,user from v$database


    I will keep adding other usefull queries here....

    java.net.SocketException: Connection reset

    One reason of this exception I have noticed is when user clicked on a link in your website and before it was loaded completly user clicked anotehr link on the same page.

    This causes
    java.net.SocketException: Connection reset

    Sunday, August 10, 2014

    Oracle Splitting String into multiple rows


    I used below query to split a comma separated string to rows in oracle

    select regexp_substr(a.col1,'[^,]+', 1, level) RT_PARAM_NAME from

            (select 'a,b,c,d' col1 from dual) a

            connect by regexp_substr(a.col1,'[^,]+', 1, level) is not null  



    Note the regular expression '[^,]+' which basically tells the query to use , as a delimeter , and note the use of level and connect by.

    Wednesday, August 6, 2014

    ORA-01422: exact fetch returns more than requested number of rows


    This error normaly means that the query fetched more than one records , while it was expected to return only one record (in cases where you are using in clause in a query to assign the result to a variable , you are assuming it will always retun only one row but at the time of this exception it is returning more rows).

    If this is the case the solution is very simple , introduce more strict criteria in your query to make sure that it alwasy returns only one row.

    How ever I also faced this exception in another interesting case.

    Problem:

    In my oracle function I was passing a parameter and the name of the parameter was "alert_id" , then I was comparing the value of this parameter with a field in the query below


    select a.message into html from  My_Table a where a.alert_id=alert_id;

    I double checked there was only one record in the databas with that alert_id , but inside trhe function when i was running this query it was giving me ORA-01422 again which did not make sense.

    Solution:

    I found that the problem was that the name of the field in the database and the name of the parameter was same (alert_id in my case) , when you do that you will face this problem because oracle will pace the current value in the database field after the = sign , so my query was getting interprated as (suppose alertid in the data base is 5380)

    select a.message  from  rtoc.rtoc_alert a where 5380=5380;

    when I ran the above query in PL/SQL it showed me more than one records.

    Moral of the story :)

    Naver use the parameter names ina  function which have any possibility of exsitance in tables you are using in your function.

    Suggessted Naming Convention

    function parameters should start with "p_" ==> "p_alert_id"
     variables declared whould start with  "v_"


     

    Monday, August 4, 2014

    Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

    I was getting this error in my eclipse project , pressing ctrl+t and finding for this class I found that it was avaialable in one of my jar files in the maven m2 directory under below jar file

    commonns-io-2.1.jar

    So I was considering that it is in my class path already , but I was wrong.

    I soon found out that the dependency related to this jar file in my pom was mistakenly commented out and because of that the jar file was not included in my war.

    so I uncommented the below dependency in my pom file

      <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>2.1</version>
      </dependency>
    and recompiled the project nd nwo it's running fine.
     

    Summary:

    NoClassDefFoundError means the related jar is not in your classpath and ctrl+t shows you only to which jar file a class belongs to . it doesn't mean that the jar file is in your classpath ( It's a reminder for myself :)  ) .

    Sunday, August 3, 2014

    java.lang.IllegalAccessError: tried to access class com.documentum.bpm.WorkflowVariables from class com.documentum.bpm.impl.DfWorkflowEx

    We recently migrated from documentum 6.5 to 7.1 , and had to retest our code with new documentum jar files.

    I found that bpm_infra.jar file was not any more in the new documentum lib folder so removed it from my class path , but I started getting "IDfWorkflowEx cannot be resolved to a type" compiler error.

    This was understood as in the old version we had the related jar file "dpm_infra.jar". I also tried to keep the jar file in class path and then was able to compile and execute the project and even initiate the workflow successfully , but when i was trying to process a workflow item I was getiing the exception

    java.lang.IllegalAccessError: tried to access class com.documentum.bpm.WorkflowVariables from class com.documentum.bpm.impl.DfWorkflowEx


     Luckily I found an epert friend who adviced me to just comment the code as it was not really being used anywhere in my applicaiton (I was using a custom API to do docuemntum operations ) , so after commenting the related code and removing the dpm_infra.jar file from my classpath I was able to do all the workflow operations and file uploads and downloads.