XMLDOM.appendChild performance

I need to process a large xml (52 000 messages under the root element). There are 3 items under each Message element. Example: -.
< root >
< message >
< customer > 14434 < / customer >
Mamadou < MessageType > < / MessageType >
< Key > 2343 < / key >
< / message >
< message >
< customer > 14434 < / customer >
Mamadou < MessageType > < / MessageType >
< Key > 2143 < / key >
< / message >
< / root >

I have check the 3 values on a table and add two values as follows
< root >
< message >
< customer > 14434 < / customer >
Mamadou < MessageType > < / MessageType >
< Key > 2343 < / key >
< value > 7689 < / value >
< hits > 1 < / Hits >
< / message >
< message >
< customer > 14434 < / customer >
Mamadou < MessageType > < / MessageType >
< Key > 2143 < / key >
< value > 9 < / value >
< hits > 98797 < / Hits >
< / message >
< / root >

Note: There are elements of 'Message' 58000 in my test

The entry arrives at the proc as a CLOB

The message of the analysis and queries to extract the 'Value' and 'Hits' takes about 2 minutes, which is acceptable.
However, when I added two statements appendChild adds value and Hits, the execution time turned up 10 ~ 12 minutes.

Any ideas on how to run faster?
Is there a problem with XMLDOM.appendChild?


DB version: Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit

Note:-J' posted this query Re: XMLDOM.appendChild performance and asked me to check into the XML DB forum.

on the other post, I was also told that XMLType is the one I need to use g 11 but my insert in a table of XMLType of the CLOB itself takes hours.

This conversion problem is very strange.
Have you tried to investigate the possible causes? Where time is spent, the memory consumption etc.

The other approach here is, you can try:
In my opinion, the requirement clearly dictates to process the document in the form of relational data, so that he could be joined to the base table data.
A MERGE statement seems appropriate in this case, with a temporary table to hold the parsed data.

create global temporary table tmp_xml of xmltype;

create global temporary table tmp_customerdata (
      col01  varchar2(300)
,     col02  varchar2(300)
,     col03  varchar2(300)
);

The test document contains 50,000 items and CUSTOMERDATA table 25,000 lines that correspond to half of the messages from the XML file.
The updated document is regenerated from scratch by joining the temporary table and the table updated base.

DECLARE

  v_doc      clob;
  v_new_doc  clob;

  ts_start   timestamp := systimestamp;

  -- a little trace proc :)
  procedure trace_time (mess in varchar2) is
    tmp  timestamp := systimestamp;
  begin
    dbms_output.put_line(rpad(mess,30) ||' : '|| (tmp - ts_start));
    ts_start := tmp;
  end;

BEGIN

  select doc into v_doc from testclob;

  trace_time('CLOB fetch');

  insert into tmp_xml values( xmlparse(document v_doc) );

  trace_time('XMLType insert');

  insert into tmp_customerdata (col01, col02, col03)
  select x.col01, x.col02, x.col03
  from tmp_xml t
     , xmltable('/Root/Message'
         passing t.object_value
         columns col01 varchar2(300) path 'Customer'
               , col02 varchar2(300) path 'MessageType'
               , col03 varchar2(300) path 'Key'
       ) x
  ;

  trace_time('XML data parsing');

  /*
    Merge XML data into CUSTOMERDATA table
    */
  merge into customerdata t
  using (
    select col01, col02, col03
    from tmp_customerdata
  ) v
  on ( v.col01 = t.col01
       and v.col02 = t.col02
       and v.col03 = t.col03
       and t.groupid = '10' )
  when matched then update
   set t.col05 = t.col05 + 1
     , t.col06 = to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS')
  when not matched then insert
   (groupid, col01, col02, col03, col04, col05, col06)
   values (
     '10'
   , v.col01
   , v.col02
   , v.col03
   , sq_value.nextval
   , '1'
   , to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS')
   ) ;

  trace_time('Data merging');

  /*
    Generate the updated XML document
    */
  select xmlserialize(document
           xmlelement("Root",
             xmlagg(
               xmlelement("Message",
                 xmlforest(
                   t.col01 as "Customer"
                 , t.col02 as "MessageType"
                 , t.col03 as "Key"
                 , t.col04 as "Value"
                 , t.col05 as "Hits"
                 )
               )
             )
           )
         )
  into v_new_doc
  from tmp_customerdata t
       join customerdata c on c.col01 = t.col01
                          and c.col02 = t.col02
                          and c.col03 = t.col03
                          and c.groupid = '10'
  ;

  trace_time('Generating new document');

END;
/

The block runs in about 26 seconds (could be further optimized with indexes).
Output:

CLOB fetch                     : +000000000 00:00:00.000000000
XMLType insert                 : +000000000 00:00:11.310000000
XML data parsing               : +000000000 00:00:03.073000000
Data merging                   : +000000000 00:00:07.020000000
Generating new document        : +000000000 00:00:04.368000000

Tags: Database

Similar Questions

  • PRAGMA EXCEPTION_INIT works not as you wish

    Hi all

    I created a procedure where in I am trying to generate an error message saying "Table is missing from the database" when an id (2617804) is passed. To ensure that there is no such thing as the name of the table, then instead of the error is handled by OTHERS WHEN I want to be manipulated by my own error message and however which is a failure as well as control passes to 'OTHERS'.

    Can someone help me?

    Here is the code:

    Package:

    CREATE OR REPLACE PACKAGE CTNAPP.SANDEEP_XMLXTRACT IS
    
      /*****************************************************************************
      * Global Public Variables for error handling
      *****************************************************************************/
      g_vProgramName VARCHAR2(30):= 'CNZ017';
      g_vPackageName VARCHAR2(30):= 'CTN_PUB_CNTL_EXTRACT_PUBLISH';
      g_vProcedureName VARCHAR2(30);
      g_vTableName VARCHAR2(30);
      g_nSqlCd NUMBER;
      g_vErrorMessage VARCHAR2(2000); 
       
      /*****************************************************************************
      * Global Public Variables
      *****************************************************************************/  
      --Type declarations for GetCtnData procedure
      TYPE g_tVCArrayTyp IS 
      TABLE OF VARCHAR2(32767)
      INDEX BY BINARY_INTEGER;
      g_tVarcharArray g_tVCArrayTyp;
    
      TYPE g_tTblIDsTyp IS 
      TABLE OF NUMBER
      INDEX BY BINARY_INTEGER;
    
      PROCEDURE GetCtnData(p_nInCtnPubCntlID IN ctn_pub_cntl.ctn_pub_cntl_id%TYPE
      , p_tOutVarCharArray OUT g_tVCArrayTyp
      , pCount OUT NUMBER);
    
    
    
    
    
    
    

    Package body:

    CREATE OR REPLACE PACKAGE BODY CTNAPP.SANDEEP_XMLXTRACT IS
    
      -- Local Variables
      XMLctx DBMS_XMLGEN.CTXHANDLE;
      XMLdoc xmldom.DOMDocument;
      root_node xmldom.DOMNode;
      child_node xmldom.DOMNode;
      child_elmt xmldom.DOMElement;
      leaf_node xmldom.DOMNode;
      elmt_value xmldom.DOMText;
    
      vStrSqlQuery VARCHAR2(32767);
      nKiloByteLimit NUMBER(6) := 30000;
      dCurrentDate TIMESTAMP := SYSTIMESTAMP;
    
    -- Private Procedures 
      /************************************************************************
      *NAME : BuildCPRHeader
      *TYPE : FUNCTION
      *INPUT : 
      *OUTPUT : 
      *DESCRIPTION :  
      *  
      *************************************************************************/
      FUNCTION BuildCPRHeader RETURN VARCHAR2 IS
      vpublishHdr VARCHAR2(2000) := NULL;
      BEGIN
    
      XMLdoc := xmldom.newdomdocument;
      root_node := xmldom.makeNode(XMLdoc);
    
      child_elmt := xmldom.createElement(XMLdoc, 'PUBLISH_HEADER');
      child_node := xmldom.appendChild (root_node, xmldom.makeNode (child_elmt));
       
      child_elmt := xmldom.createElement (XMLdoc, 'SOURCE_APLCTN_ID');
      elmt_value := xmldom.createTextNode (XMLdoc, 'CTN');
      leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
      leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
      child_elmt := xmldom.createElement (XMLdoc, 'SOURCE_PRGRM_ID');
      elmt_value := xmldom.createTextNode (XMLdoc, g_vProgramName);
      leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
      leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
      child_elmt := xmldom.createElement (XMLdoc, 'SOURCE_CMPNT_ID');
      elmt_value := xmldom.createTextNode (XMLdoc, g_vPackageName);
      leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
      leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
      child_elmt := xmldom.createElement (XMLdoc, 'PUBLISH_TMS');
      elmt_value := xmldom.createTextNode (XMLdoc, TO_CHAR(dCurrentDate, 'YYYY-MM-DD HH24:MI:SS'));
      leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
      leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
      xmldom.writetobuffer(XMLdoc, vPublishHdr);
    
      RETURN vPublishHdr;
       
      END BuildCPRHeader;
    
    
    PROCEDURE GetCtnData(p_nInCtnPubCntlID IN ctn_pub_cntl.ctn_pub_cntl_id%TYPE, 
      p_tOutVarCharArray OUT g_tVCArrayTyp, 
      pCount OUT NUMBER)
      IS
      vTblName ctn_pub_cntl.table_name%TYPE;
      vLastPubTms ctn_pub_cntl.last_pub_tms%TYPE;
      l_clob CLOB;
      nCount PLS_INTEGER;
      nLength PLS_INTEGER;
      noffset PLS_INTEGER;
       
      table_not_found EXCEPTION;
      PRAGMA EXCEPTION_INIT(table_not_found, -00942);
       
      BEGIN
       
      g_vProcedureName:='GetCtnData';
       
      SELECT table_name, last_pub_tms
      INTO vTblName, vLastPubTms
      FROM CTN_PUB_CNTL
      WHERE ctn_pub_cntl_id = p_nInCtnPubCntlID;
       
      IF sql%ROWCOUNT = 0 THEN
      RAISE no_data_found;
      END IF;
    
      DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''YYYY:MM:DD HH24:MI:SS''');
      vStrSqlQuery := 'SELECT * FROM ' || vTblName
      || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'')'
      || ' AND rownum < 2'
      || ' ORDER BY record_update_tms'
      ;
    
      XMLctx := DBMS_XMLGEN.NEWCONTEXT(vStrSqlQuery);
      DBMS_XMLGEN.SETNULLHANDLING(XMLctx, 2);
      DBMS_XMLGEN.SETROWSETTAG(XMLctx, vTblName);
      l_clob := DBMS_XMLGEN.GETXML(XMLctx);
      l_clob := REPLACE(l_clob, '<?xml version="1.0"?>', '');
    
      l_clob := '<?xml version="1.0"?>' || CHR(13) || CHR(10)
      || '<PUBLISH> ' || CHR(13) || CHR(10)
      || BuildCPRHeader
      || '<PUBLISH_BODY> '
      || l_clob
      || '</PUBLISH_BODY> ' || CHR(13) || CHR(10)
      || '</PUBLISH>';
    
    -- l_clob := '<' || vTblName || '/>';
    
      nLength := DBMS_LOB.getlength(l_clob);
      nCount := CEIL(nLength / nKiloByteLimit);
    
      noffset := 1;
      IF (nCount > 0) THEN
      FOR i in 1 .. nCount LOOP
      p_tOutVarCharArray(i) := DBMS_LOB.SUBSTR(l_clob, nKiloByteLimit, noffset);
      noffset := noffset + nKiloByteLimit;
      dbms_output.put_line(p_tOutVarCharArray(i));
      END LOOP;
      END IF;
    
      pCount := nCount;
       
      EXCEPTION 
      WHEN table_not_found THEN
      RAISE_APPLICATION_ERROR(-20001,'Table is missing from the database');  
       
      WHEN no_data_found THEN
      CTNAPP_COMMON.write_log(g_vPackageName, g_vProcedureName, NULL,'INFORMATIONAL','XMLTOSAP');
       
      --WHEN too_many_rows THEN
      -- CTNAPP_COMMON.write_log(g_vPackageName, g_vProcedureName, NULL,'FATAL','XMLTOSAP');
       
      WHEN others THEN
      CTNAPP_COMMON.write_log(g_vPackageName, g_vProcedureName,NULL, 'ERROR','XMLTOSAP');
       
      END GetCtnData;
    

    and now, to call my own procedure:


    CREATE OR REPLACE PROCEDURE CTNAPP.SANDEEP_TEST_LAMXML
    IS
    
    l_tOutVarCharArray SANDEEP_XMLXTRACT.g_tVCArrayTyp;
    
    nCount NUMBER(5);
    
    BEGIN  
    END;
    /
    
    
    
     SANDEEP_XMLXTRACT.GetCtnData(2617804, l_tOutVarCharArray,nCount);
    
    
    
    


    When in 2617804 is an id that has a table name called 'sandeep' and this 'sandeep' is passed dynamically (such as there might be a table of someother name in the future) in the variable vStrSqlQuery.

    Can anyone let me know where I am going wrong. I tried a small prototype with PRAGMA EXCEPTION_INIT (which worked successfully) before generating the error for the production program manager.

    @Solomon and Jarkko: thanks for explaining things in detail and why this code is redundant. I'll remove it. As for the original question, it is now fixed. I spent just "EXECUTE IMMEDIATE vStrSqlQuery;" after "vStrSqlQuery" and that fixed the issue. He went immediately to the error handler I wanted him (WHEN table_not_found THEN) as opposed to "When OTHERS" Finally the issue is fixed. Thanks a lot for everyone taking the time. Very much appreciated.

  • How to get a magic number for any table that returns more than 32 k?

    I'm in a unique situation where in I try to extract the values of the multiple tables and to publish as XML output. The problem is based on the condition of a few tables can retrieve more than 32 KB and less than 32 KB of data. Less than 32KB is not a problem, as the generation of XML is smooth. The minute he reached more than 32 k, it generates a runtime error. I was wondering if there is a way to make sure that the minute results of the query is greater than 32 KB, it must break say - if results is 35KO, so should I break this result 32 KB and 3 KB. Once then pass these data to appear as XML output. Again, it is not just for a table, but all the tables which are called in the function.

    Is it possible? I'm unable to get ideas, or did I do something so complex from the point of view of production support. If you'd be grateful if someone can guide me on this.

    The way it is, is the following:
    I have a table named ctn_pub_cntl


    CREATE TABLE CTNAPP.ctn_pub_cntl 
    (ctn_pub_cntl_id          NUMBER(18)
    ,table_name                  VARCHAR2(50)
    ,last_pub_tms              DATE
    ,queue_name               VARCHAR2(50)
    ,dest_system              VARCHAR2(50)
    ,frequency                  NUMBER(6)
    ,status                      VARCHAR2(8)
    ,record_create_tms          DATE
    ,create_user_id                VARCHAR2(8)
    ,record_update_tms          DATE
    ,update_user_id             VARCHAR2(8)
    ,CONSTRAINT ctn_pub_cntl_id_pk PRIMARY KEY(ctn_pub_cntl_id)
    );
    
    

    To do this, the data are:


    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms  
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_SBDVSN'
    ,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.TSZ601.UNP'
    ,'SAP'
    ,15
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms  
     ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_TRACK_SGMNT_DN'
    ,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.WRKORD.UNP'
    ,'SAP'
    ,30
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms  
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_FXPLA_TRACK_LCTN_DN'
    ,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.YRDPLN.INPUT'
    ,'SAP'
    ,30
    ); 
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms  
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
    ,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.TSZ601.UNP'
    ,'SAP'
    ,120
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms 
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
    ,TO_DATE('04/23/2015 11:50:00PM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.YRDPLN.INPUT'
    ,'SAP'
    ,10
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms 
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_FIXED_PLANT_ASSET'
    ,TO_DATE('04/23/2015 11:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.WRKORD.UNP'
    ,'SAP'
    ,10
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms 
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_OPRLMT'
    ,TO_DATE('03/26/2015 7:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.WRKORD.UNP'
    ,'SAP'
    ,30
    );
    
    INSERT INTO CTNAPP.ctn_pub_cntl
    (ctn_pub_cntl_id    
     ,table_name         
     ,last_pub_tms
    ,queue_name  
     ,dest_system        
     ,frequency          
    )
    VALUES
    (CTNAPP_SQNC.nextval
    ,'TRKFCG_OPRLMT_SGMNT_DN'
    ,TO_DATE('03/28/2015 12:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
    ,'UT.TSD.WRKORD.UNP'
    ,'SAP'
    ,30
    );
    
    /
    
    COMMIT;
    
    

    Once the above data are inserted and committed, then I created a feature in a package:


    CREATE OR REPLACE PACKAGE CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
    IS
    
    TYPE tNameTyp IS TABLE OF ctn_pub_cntl.table_name%TYPE INDEX BY BINARY_INTEGER;
    g_tName tNameTyp;
    
    TYPE tClobTyp IS TABLE OF CLOB INDEX BY BINARY_INTEGER;
    g_tClob tClobTyp;
    
    
    FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_count OUT NUMBER ) RETURN tClobTyp;
    
    
    END CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH;
    
    
    --Package body
    
    CREATE OR REPLACE PACKAGE BODY CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
    IS
    
         doc           xmldom.DOMDocument;
         main_node     xmldom.DOMNode;
         root_node     xmldom.DOMNode;
         root_elmt     xmldom.DOMElement;
         child_node    xmldom.DOMNode;
         child_elmt    xmldom.DOMElement;
         leaf_node     xmldom.DOMNode;
         elmt_value    xmldom.DOMText;
         tbl_node      xmldom.DOMNode;
         table_data    XMLDOM.DOMDOCUMENTFRAGMENT;
      
         l_ctx         DBMS_XMLGEN.CTXHANDLE;
         vStrSqlQuery  VARCHAR2(32767);
         l_clob        tClobTyp;
         --
         l_xmltype     XMLTYPE;
         --
    --Local Procedure to build XML header     
    PROCEDURE BuildCPRHeader IS
    
      BEGIN
        child_elmt := xmldom.createElement(doc, 'PUBLISH_HEADER');
        child_node  := xmldom.appendChild (root_node, xmldom.makeNode (child_elmt));
    
        child_elmt := xmldom.createElement (doc, 'SOURCE_APLCTN_ID');
        elmt_value := xmldom.createTextNode (doc, 'CTN');
        leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
        leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
        
        child_elmt := xmldom.createElement (doc, 'SOURCE_PRGRM_ID');
        elmt_value := xmldom.createTextNode (doc, 'VALUE');
        leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
        leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
        child_elmt := xmldom.createElement (doc, 'SOURCE_CMPNT_ID');
        elmt_value := xmldom.createTextNode (doc, 'VALUE');
        leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
        leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
    
        child_elmt := xmldom.createElement (doc, 'PUBLISH_TMS');
        elmt_value := xmldom.createTextNode (doc, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
        leaf_node  := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
        leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
        
    END BuildCPRHeader;
    
    --Get table data based on table name
    FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_Count OUT NUMBER) RETURN tClobTyp IS
        
        vTblName      ctn_pub_cntl.table_name%TYPE;
        vLastPubTms   ctn_pub_cntl.last_pub_tms%TYPE;
         
    BEGIN
                g_vProcedureName:='GetCtnData';    
                g_vTableName:='CTN_PUB_CNTL';
                
            SELECT table_name,last_pub_tms
            INTO   vTblName, vLastPubTms
            FROM   CTN_PUB_CNTL
            WHERE  ctn_pub_cntl_id=p_nInCtnPubCntlID;
        
        -- Start the XML Message generation
            doc := xmldom.newDOMDocument;
            main_node := xmldom.makeNode(doc);
            root_elmt := xmldom.createElement(doc, 'PUBLISH');
            root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
            
          --Append Table Data as Publish Header
            BuildCPRHeader;
            
          --Append Table Data as Publish Body
          
           child_elmt := xmldom.createElement(doc, 'PUBLISH_BODY');
           leaf_node  := xmldom.appendChild (root_node, xmldom.makeNode(child_elmt)); 
           
           DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''YYYY:MM:DD HH24:MI:SS''');
           
           vStrSqlQuery := 'SELECT * FROM ' || vTblName 
                          || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
                        --  ||  ' AND rownum < 16'
                          --;
          DBMS_OUTPUT.PUT_LINE(vStrSqlQuery);
           
           l_ctx  := DBMS_XMLGEN.NEWCONTEXT(vStrSqlQuery);
          DBMS_XMLGEN.SETNULLHANDLING(l_ctx, 0);
          DBMS_XMLGEN.SETROWSETTAG(l_ctx, vTblName); 
           
          -- Append Table Data as XML Fragment
          l_clob(1):=DBMS_XMLGEN.GETXML(l_ctx);  
          elmt_value := xmldom.createTextNode (doc, l_clob(1)); 
         leaf_node  := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value)); 
         
         xmldom.writeToBuffer (doc, l_clob(1));
         l_clob(1):=REPLACE(l_clob(1),'&lt;?xml version=&quot;1.0&quot;?&gt;', NULL);
         l_clob(1):=REPLACE(l_clob(1),'&lt;', '<');
         l_clob(1):=REPLACE(l_clob(1),'&gt;', '>');
         
         RETURN l_clob;
         
         DBMS_OUTPUT.put_line('Answer is' ||l_clob(1));
         
         EXCEPTION
            
            WHEN NO_DATA_FOUND THEN
            
            DBMS_OUTPUT.put_line('There is no data with' || SQLERRM);
            g_vProcedureName:='GetCtnData';
            g_vTableName:='CTN_PUB_CNTL';
            g_vErrorMessage:=SQLERRM|| g_vErrorMessage;
            g_nSqlCd:=SQLCODE;
            ctn_log_error('ERROR',g_vErrorMessage,'SELECT',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
            
            
            WHEN OTHERS THEN
           
           DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM);
           ctn_log_error('ERROR',g_vErrorMessage,'OTHERS',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
           
    END GetCtnData;
    
    
    PROCEDURE printClob (result IN OUT NOCOPY CLOB) IS
        xmlstr   VARCHAR2 (32767);
        line     VARCHAR2 (2000);
    BEGIN
        xmlstr := DBMS_LOB.SUBSTR (result, 32767);
    
        LOOP
           EXIT WHEN xmlstr IS NULL;
           line := SUBSTR (xmlstr, 1, INSTR (xmlstr, CHR (10)) - 1);
           DBMS_OUTPUT.put_line (line);
           xmlstr := SUBSTR (xmlstr, INSTR (xmlstr, CHR (10)) + 1);
        END LOOP;
    END printClob;
    
    END CTN_PUB_CNTL_EXTRACT_PUBLISH;
    
     
    

    If you notice my query:


    vStrSqlQuery := 'SELECT * FROM ' || vTblName 
                          || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
                         ||  ' AND rownum < 16'
                        ;
    

    The minute I comment

    ||  ' AND rownum < 16' ;


    It generates an error because this query returns about 600 lines and all these lines must be published in XML format and the tragedy, is that it is a C program between institutions i.e. C calls my functions of packged and then will do all the processing. This will return the results to the C program. Then obviously C does not recognize the CLOB and somewhere in the process, I convert to VARCHAR or CLOB CLOB, I have to use VARCHAR as a return type. That's my challenge.


    Someone who can help me find the number required of magic and also a brief knows how, I understand that. Thanks in advance.

    Not that I would use it myself but your package can be simplified down, like this:

    create or replace package ctn_pub_cntl_extract_publish is
    
      C_DTFORMAT  constant varchar2(30) := 'YYYY-MM-DD HH24:MI:SS';
    
      function getXMLData (p_table_name in varchar2, p_pub_tms in date) return xmltype;
      function getCTNData (p_id in number) return clob;
    
    end ctn_pub_cntl_extract_publish;
    /
    
    create or replace package body ctn_pub_cntl_extract_publish is
    
      function getXMLData (p_table_name in varchar2, p_pub_tms in date)
      return xmltype
      is
    
        v_query  varchar2(32767) :=
                 q'{select * from $$TABLE_NAME where record_update_tms <= to_date(:1, 'YYYYMMDDHH24MISS')}';
    
        ctx      dbms_xmlgen.ctxHandle;
        doc      xmltype;
    
      begin
    
        execute immediate 'alter session set nls_date_format = "'||C_DTFORMAT||'"';
        v_query := replace(v_query, '$$TABLE_NAME', dbms_assert.simple_sql_name(p_table_name)); 
    
        ctx := dbms_xmlgen.newContext(v_query);
        dbms_xmlgen.setBindValue(ctx, '1', to_char(p_pub_tms, 'YYYYMMDDHH24MISS'));
        dbms_xmlgen.setRowSetTag(ctx, p_table_name);
        dbms_xmlgen.setNullHandling(ctx, dbms_xmlgen.DROP_NULLS);
        doc := dbms_xmlgen.getXMLType(ctx);
        dbms_xmlgen.closeContext(ctx);
    
        return doc; 
    
      end;
    
      function getCTNData (p_id in number)
      return clob
      is
    
        doc  clob;
    
      begin
    
        select xmlserialize(document
                 xmlelement("PUBLISH"
                 , xmlelement("PUBLISH_HEADER"
                   , xmlforest(
                       'CNT' as "SOURCE_APLCTN_ID"
                     , 'VALUE' as "SOURCE_PRGRM_ID"
                     , 'VALUE' as "SOURCE_CMPNT_ID"
                     , to_char(sysdate, C_DTFORMAT) as "PUBLISH_TMS"
                     )
                   )
                 , xmlelement("PUBLISH_BODY"
                   , getXMLData(t.table_name, t.last_pub_tms)
                   )
                 )
               )
        into doc
        from ctn_pub_cntl t
        where t.ctn_pub_cntl_id = p_id;
    
        return doc;
    
      end;
    
    end ctn_pub_cntl_extract_publish;
    

    Function getXMLData() generates a canonical XML document out of the table that is passed as a parameter.

    Function built getCTNData() code XML "PUBLISH", the document using SQL/XML functions, the getXMLData() call in the process and returns the content serialized as a CLOB.

  • Crashing apps and the slow performance since the installation of macOS Sierra

    Hello

    Im a user of long date Mac but displays the first time that I was pretty happy with everything that on my macbook pro for the past years... until I installed Sierra a day ago.

    Since installing everything works super slow and a lot of my apps hang and crash. Things are not rosy, here is my EtreCheck report - running current version 10.12 on my MacBook Pro (mid 2010) if anyone can help would be much appreciated. Thank you

    EtreCheck version: 3.0.6 (315)

    Report generated 2016-10-07 16:52:11

    Download EtreCheck from https://etrecheck.com

    Time 06:53

    Performance: Below average

    Click the [Support] links to help with non-Apple products.

    Click [details] for more information on this line.

    Problem: Apps are broken

    Hardware Information:

    MacBook Pro Intel Core i5, Intel Core i7 (mid-2010)

    [Data sheet] - [User Guide] - [warranty & Service]

    MacBook Pro - model: MacBookPro6, 2

    1 2.53 GHz Intel Core i5 CPU: 2 strands

    4 GB of RAM expandable - [Instructions]

    BANK 0/DIMM0

    OK 2 GB DDR3 1067 MHz

    BANK 1/DIMM0

    OK 2 GB DDR3 1067 MHz

    Bluetooth: Old - transfer/Airdrop2 not supported

    Wireless: en1: 802.11 a/b/g/n

    Battery: Health = Normal - Cycle count = 371

    Video information:

    Intel HD Graphics

    NVIDIA GeForce GT 330M - VRAM: 256 MB

    Color LCD 1440 x 900

    Software:

    macOS Sierra 10.12 (A 16, 323) - since startup time: less than an hour

    Disc information:

    Hitachi HTS545050B9SA02 disk0: (500,11 GB) (rotation)

    EFI (disk0s1) < not mounted >: 210 MB

    Recovery HD (disk0s3) < not mounted > [recovery]: 650 MB

    BOOTCAMP (disk0s4) / Volumes/BOOTCAMP: 86,37 (Go 31,68 free)

    Macintosh HD (disk 1) / [Startup]: 412,50 (GB 158,46 free)

    Encrypted AES - XTS unlocked

    Storage of carrots: disk0s2 412.88 GB Online

    MATSHITADVD-R UJ-898)

    USB information:

    Logitech USB receiver

    Card reader Apple

    Apple Inc. Apple keyboard / Trackpad

    Apple Inc. BRCM2070 hub.

    Apple Inc. Bluetooth USB host controller.

    Computer, Inc. Apple IR receiver.

    Built-in ISight from Apple Inc..

    Guardian:

    Mac App Store and identified developers

    Kernel extensions:

    / System/Library/Extensions

    com [no charge]. Huawei.driver.HuaweiDataCardDriver (4.0.6 - 2016-10-04) [Support]

    com [loading]. Logitech.Control Center.HID Driver (3.5.1 - SDK 10.0 - 2016-10-04) [Support]

    com [no charge]. Driver Logitech.Unifying.HID (1.2.0 - SDK 10.0 - 2016-10-04) [Support]

    [no charge] com.leapfrog.driver.LfConnectDriver (1.0.6 - SDK 10.0 - 2016-10-04) [Support]

    NET [no charge]. Thomson.iokit.USBLAN_usbpart (1.6.0 - 2016-10-04) [Support]

    Startup items:

    HWNetMgr: Path: / Library/StartupItems/HWNetMgr

    Startup items is no longer function in OS X Yosemite or later

    Launch system officers:

    [no charge] 7 tasks Apple

    tasks of Apple 178 [loading]

    tasks of Apple 86 [performance]

    Launch system demons:

    [no charge] 42 tasks of Apple

    tasks of Apple 167 [loading]

    tasks of Apple 95 [performance]

    Launch officers:

    [performance] com Logitech.Control Center.Daemon.plist (2011-11-05) [Support]

    [loaded] com.adobe.AAM.Updater - 1.0.plist (2015-09-18) [Support]

    [cannot] com.adobe.CS5ServiceManager.plist (2010-07-14) [Support]

    [loading] com.google.keystone.agent.plist (2016-07-13) [Support]

    [cannot] com.teamviewer.teamviewer.plist (08 / 08/2015) [Support]

    [cannot] com.teamviewer.teamviewer_desktop.plist (08 / 08/2015) [Support]

    Launch demons:

    [loading] com.adobe.SwitchBoard.plist (2010-07-14) [Support]

    com.Adobe.agsservice.plist [running] (2016-08-19) [Support]

    [loading] com.adobe.fpsaud.plist (2016-08-30) [Support]

    [loading] com.apple.installer.osmessagetracing.plist (2016-09-14)

    [loading] com.google.keystone.daemon.plist (2016-09-02) [Support]

    [loading] com.teamviewer.Helper.plist (2015-03-03) [Support]

    [cannot] com.teamviewer.teamviewer_service.plist (08 / 08/2015) [Support]

    User launch officers:

    [loading] com.adobe.AAM.Updater - 1.0.plist (2010-07-16) [Support]

    [loading] com.adobe.ARM. [...]. plist (2011-09-13) [Support]

    [loading] com.adobe.ARM. [...]. plist (2010-07-14) [Support]

    com.nero.HSMMonitor.plist [running] (2016-10-07) [Support]

    Plug-ins Internet:

    DirectorShockwave: 12.0.6r147 - SDK 10.6 (2013-11-25) [Support]

    OVSHelper: 1.0 (2010-12-10) [Support]

    OfficeLiveBrowserPlugin: 12.3.6 (2013-03-22) [Support]

    NP_2020Player_WEB: 5.0.7.0 (2011-04-03) [Support]

    AdobeAAMDetect: AdobeAAMDetect 1.0.0.0 - SDK 10.6 (2015-09-18) [Support]

    FlashPlayer - 10.6: 23.0.0.162 - SDK 10.9 (2016-09-29) [Support]

    AdobePDFViewerNPAPI: 11.0.10 - SDK 10.6 (2014-12-03) [Support]

    DivXBrowserPlugin: 2.1 (2010-12-10) [Support]

    QuickTime Plugin: 7.7.3 (2016-09-14)

    Flash Player: 23.0.0.162 - SDK 10.9 (2016-09-29) is unable to contact Adobe

    iPhotoPhotocast: 7.0 (2010-07-14)

    Silverlight: 5.1.30514.0 - SDK 10.6 (2015-01-17) [Support]

    AdobePDFViewer: 11.0.10 - SDK 10.6 (2015-03-29) [Support]

    JavaAppletPlugin: 15.0.1 - 10.12 (2013-10-25) check the version of the SDK

    User Plug-ins internet:

    Picasa: 1.0 (2011-03-29) [Support]

    Safari extensions:

    DivX HiQ - DivX, Inc. - http://www.divx.com/en/software/divx-plus/web-player/ (2010-12-21)

    DivX Plus Web Player HTML5 < video > - DivX, Inc. - http://www.divx.com/en/software/divx-plus/web-player/ (2010-12-21)

    3rd party preference panes:

    DivX (2010-12-10) [Support]

    Flash Player (2016-08-30) [Support]

    Logitech Control Center (2011-11-05) [Support]

    Time Machine:

    Time Machine not configured!

    Top of page process CPU:

    5% kernel_task

    5% WindowServer

    1% com.apple.AmbientDisplayAgent

    1% xpcproxy

    0% fontd

    Top of page process of memory:

    Kernel_task 432 MB

    Mdworker (15) 430 MB

    Airmail beta 283 MB

    152 MB Finder

    Sandboxd 147 MB

    Virtual memory information:

    476 MB free RAM

    3.53 GB used RAM (1.41 GB being cached)

    Used Swap 0 B

    Diagnostic information:

    7 October 2016, 16:39:48 Self test - passed

    7 October 2016, 16:20:48 ~/Library/Logs/DiagnosticReports/Airmail Beta_2016-10-07-162048_ [redacted] .crash

    / Applications/Airmail Beta.app/Contents/MacOS/Airmail Beta

    October 6, 2016, 08:17:31 PM/Library/Logs/DiagnosticReports/App Store_2016-10-06-201731_ [redacted] .hang

    / Applications/App Store Store.app/Contents/MacOS/App

    October 6, 2016, 07:52:21 PM/Library/Logs/DiagnosticReports/station air Beta_2016-10-06-195221_ [redacted] .hang

    October 6, 2016, 14:37:32 /Library/Logs/DiagnosticReports/Preview_2016-10-06-143732_[redacted].hang

    /Applications/preview.app/Contents/MacOS/preview

    October 6, 2016, 02:37:26 PM/Library/Logs/DiagnosticReports/station air Beta_2016-10-06-143726_ [redacted] .hang

    October 6, 2016, 14:37:22 /Library/Logs/DiagnosticReports/firefox_2016-10-06-143722_[redacted].hang

    /Applications/Firefox.app/Contents/MacOS/Firefox

    October 6, 2016, 14:37:18 /Library/Logs/DiagnosticReports/Pages_2016-10-06-143718_[redacted].hang

    /Applications/pages.app/Contents/MacOS/pages

    October 6, 2016, 14:37:12 /Library/Logs/DiagnosticReports/AdobeAcrobat_2016-10-06-143712_[redacted].hang

    / / Applications/Adobe Acrobat 9 Pro/Adobe Acrobat Pro.app/Contents/MacOS/AdobeAcrobat

    October 6, 2016, 14:36:50 /Library/Logs/DiagnosticReports/Preview_2016-10-06-143650_[redacted].hang

    UNKNOWN PATH

    Try this first: what happens if you start in safe mode (hold down the SHIFT key during startup), the problems go away?

    Try this second in normal startup mode: what happens if you create a new user account and log in as that user, the problems go away?

    I'm not sure I'd worry about the plane crashes - it is listed as beta software

  • AFP vs SMB performance

    I've just updated to the latest version of Sierra.  I thought I had read somewhere that SMB was preferred over the AFP in Sierra and that performance would improve.  I don't see any improvement.  My results are so radically different, I thought that I post to see if anyone can tell me why my performance SMB is so catastrophic?

    I have a Mac Pro (non-cylindre) on a home network wired gigabit.  Synology DS412 + NAS running 4 disks in RAID 5.  I mounted it my my Mac using the basic option "Connect to Server" in the Finder and typing "afp://server:share" and "smb://server:share" for testing.  Both were mounted and tested separately, which means I am disconnected from the AFP before Assembly and test SMB.  I used rsync with some verbose options to copy a 1.5 GB file in order to see the speed and get a transfer of the statistics.

    Here are the stats to transfer the file to AFP:

    [josh@jeter /joshtmp]-> transfer diskimage. ISO/Volumes/FILES/tmp /.

    Building file list...

    1 file to examine

    DiskImage. ISO

    1.49 G 100% 52.18 MB/s 0:00:27 (xfer #1,-check = 0/1)

    Number of files: 1

    Number of transferred files: 1

    File size: 1.49 G bytes

    The total size of the transferred file: 1.49 G bytes

    Literal data: 1.49 G bytes

    Matched data: 0 bytes

    Size of the file list: 121

    List of files generation time: 0.002 seconds

    List of files transfer time: 0.000 seconds

    Total number of bytes sent: 1.49 G

    Total number of bytes received: 42

    received bytes sent to 1.49 G 42 bytes 52,20 M bytes/s

    total size is 1.49 G speedup is 1.00

    I think it's a pretty decent speed, but my concern is not the top speed, is the disparity.

    Here is the SMB speed:

    [josh@jeter /joshtmp]-> transfer diskimage. ISO/Volumes/FILES/tmp /.

    Building file list...

    1 file to examine

    DiskImage. ISO

    1.49 G 100% 18.02 MB/s 0:01:18 (xfer #1,-check = 0/1)

    Number of files: 1

    Number of transferred files: 1

    File size: 1.49 G bytes

    The total size of the transferred file: 1.49 G bytes

    Literal data: 1.49 G bytes

    Matched data: 0 bytes

    Size of the file list: 121

    List of files generation time: 0.001 seconds

    List of files transfer time: 0.000 seconds

    Total number of bytes sent: 1.49 G

    Total number of bytes received: 42

    received bytes sent to 1.49 G 42 bytes 18,71 M bytes/s

    total size is 1.49 G speedup is 1.00

    Also, here is the info from statshare to see how it was mounted:

    [josh@jeter /joshtmp]-> smbutil statshares - a

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

    THE ACTION ATTRIBUTE VALUE TYPE

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

    FILES

    Server_name rivera

    USER_ID 1026

    SMB_NEGOTIATE SMBV_NEG_SMB1_ENABLED

    SMB_NEGOTIATE SMBV_NEG_SMB2_ENABLED

    SMB_NEGOTIATE SMBV_NEG_SMB3_ENABLED

    SMB_VERSION SMB_3.0

    SMB_SHARE_TYPE DISK

    SIGNING_SUPPORTED TRUE

    EXTENDED_SECURITY_SUPPORTED TRUE

    LARGE_FILE_SUPPORTED TRUE

    CLIENT_REQUIRES_SIGNING TRUE

    DFS_SUPPORTED TRUE

    MULTI_CREDIT_SUPPORTED TRUE

    ENCRYPTION_SUPPORTED TRUE

    SIGNING_ON TRUE

    -------------------------------------------------------------------------------- ------------------

    In addition, attached is a screenshot of my share of the Synology settings.  It shows the parameters of the SMB and AFP.  The pop-out box is the options 'Advanced settings' of the SMB section.

    Any ideas at all?  Please and thank you.

    See Image here.

    It seems that Apple still did not set their "quick and dirty" dose for such Badlock described in this thread: El Capitan 10.11.5 update slow SMB (bug)

    If you believe that your network is protected from man-in-the-middle attacks and the bug Badlock, then you can disable the client for signature.

    1. Create a nsmb.conf file in / etc with vim. sudo will be necessary.
    2. Write to the file:

    [default]

    signing_required = no


    Then restart your machine. Your SMB3 speeds should be comparable to the AFP again.

    Here is the post above: Re: Re: Re: Re: update of El Capitan 10.11.5 slow SMB (bug)

  • MacBook Pro 15 "end 2013 too slow performance

    Hello world

    My macbook pro 15 "end 2013 me294, Core i7 haswell 2.3 Ghz, 16 GB Ram, SSD PCI 256 GB, GT 750 m & Iris Pro.

    Geek of multicore benchmarks is too less to another macbook even type (me 294).

    It's my macbook: multi-core on 6000 landmarks

    https://browser.primatelabs.com/v4/CPU/337791

    https://browser.primatelabs.com/v4/CPU/337570

    This is another of the same type (me 294): multi-core on 12000 landmarks

    https://browser.primatelabs.com/v4/CPU/search?q=model: % 22MacBook % 20Pro % 20 (15 - h % 20Retina % 20Late % 202013 Inc.) % 22% 20platform:...

    I reboot before benchmarks, I don't know why?

    GeekBench is a crude tool that is useful for computers compare configured identically. Means "Identically configured" quite the same hardware running identically configured systems with identical changes, as appropriate.

    As says Geekbench works best when it is the only application running. Comparing the performance of your Mac to others requires the abandonment of all other open applications in addition to process who can have no user interface.

    To identify the processes that are running on your Mac in order to see how they affect the activity and performance of your Mac, use the activity monitor: use the activity monitor to your Mac - Apple Support.

  • Reinstall 10.7.5 to help performance

    Late 2009 iMac 10.6.1 when new, now running 10.7.5 with 8 GB of memory and 2 TB of disk running

    My Mac worked slowly for a while. Check memory, CPU etc. in the activity monitor shows no reason for this.

    I want to reinstall the OS X 10.7.5 menu utilities in OS X, but I have no USB or disk with 10.7 on it.

    Given a stage to try and BONE cleaning is to wipe the drive, then I suppose I'll have 10.7 on some media.

    I believe that the steps would be:

    1. all save, deauthorise apps

    2 restart the Mac in recovery mode

    3 erase/format the disc extended journaled format

    4 reinstall OS X

    Who would bring back me to 10.6.1 that came with the Mac, so I have to upgrade to 10.6.8 then 10.7 as soon as I got it on a media, and then work my back to 10.7.5

    So, how I 10.7 or y at - it an easier way to get my Mac running as it was when new?

    Thank you.

    Frank.

    With 8 GB of memory and a HD 2 to (assuming that it has enough free space available on it) and your Mac must perform well. Mac in general do not need 'clean up', but they have a third-party software installed that can cause performance problems. Before you go to the backup, erase, re - install, upgrade to Lion road you can download and run EtreCheck and post the contents of his report here. Can anyone identify if there is a probable cause of software to your problem:

    http://etrecheck.com/

  • My email has been hacked and used to send Spam. I have to perform a virus check, or simply change the password?

    My email has been hacked and used to send Spam. I have to perform a virus check, or simply change the password?

    Do not install or run an anti virus app.

    How do you know that your email has been "hacked"? It is a common practice for spammers to forge an envoy from the e-mail address. It may be that your email address has been misused. There's nothing to do if this is the case for you. The spammer will soon pass and usurp another email address.

    It's a good idea to immediately change your password by email if someone would actually managed to access your e-mail account.

  • poor performance iTunes 12.4.3.1

    iTunes 12.4.3.1 worst level ever? Incomplete, burning playlists, software crashes frequently, slow dead URL, performance, WIN7

    For general advice, see troubleshooting problems with iTunes for Windows updates.

    The steps described in the second case are a guide to remove everything related to iTunes and then rebuild what is often a good starting point, unless the symptoms indicate a more specific approach.

    Review the other boxes and other support documents list to the bottom of the page, in case one of them applies.

    The more information box has direct links with the current and recent if you have problems to download, must revert to an older version or want to try the version of iTunes for Windows (64-bit - for older video cards) as a workaround for problems with installation or operation, or compatibility with third-party software.

    Backups of your library and device should be affected by these measures but there are links to backup and recovery advice there.

    TT2

  • Beach ball of death as well as by the slow performance of spinning glaciers

    Hi people,

    I have been enduring the beach ball of death from a spinning some time now in the calculation of my daily life and I just can't take longer, as long as it happens little matter what I do on the Mac, and performance are slowed by the glaciers.

    It happens all the time.

    I ran several ladies of virus, including clams and none of them came with something.

    The problem came slowly over a long period of time. Now, however, the beach ball takes over whenever I'm on Mac to the point that I have to force quit, and then restart just to get anything done, and even then, it is not long until the ball is back and performance slows down again.

    Thank you in advance for any help you can provide.

    Please let me know if you need more information than that on my computer:

    Model name: iMac
    Model identifier: iMac12, 1
    Processor name: Intel Core i5
    Processor speed: 2.5 GHz
    Number of processors: 1
    Total number of cores: 4
    L2 Cache (by heart): 256 KB
    L3 Cache Memory: 6 MB
    Memory: 4 GB
    Boot ROM version: IM121.0047.B23
    Version of the SCM (System): 1.71f22

    With gratitude,

    AK

    Please post a report of EtreCheckof your system. We then look for obvious problems. Please click on the link, download the application and run the report. Once you have the report, please copy and paste into your response to this post.

    If you would like more information on what is EtreCheck, just click on the link and you will find a description of the application.

    It is very possible that your problem much worse by installing antivirus on your computer applications. AV apps for Mac are useless, there is no virus for OS X. Most tend to create more problems than they solve so look for developers instructions to uninstall (s) installed and uninstall them.  Run the EtreCheck report after it has been uninstalled. OS X needs no antivirus, cleanup or ANY third party maintenance apps. If left alone and simply updated OS X will run well for most users for years!

  • MainStage - loss of connectivity environment performance

    Hi guys,.

    I seem to lose connectivity between my midi controller (m-audio code 61) and Mainstage environment performance. I lost sound and the warning message on the Mainstage saying that the midi controller is no longer available. Currently, I connect via the USB port, which also fuels the midi controller. I have to disconnect and reconnect the USB cable on the midi controller or laptop and then it seems to work again. Any ideas on how to solve this problem?

    Try another USB cable. A premium quality cable may be the solution. The connectors tend to have a tighter fit. Another alternative is to use a power supply and a USB MIDI cable, or connect via a cable to your audio interface MIDI, if it has a MIDI.

  • Concerned about the performance of the battery Ipod 6

    Hello!. Please tell me your thoughts on this because I have no idea about. I bought a new Ipod 6 a week ago. I think that the battery is not give the performance of desire. He's dead, and after a charge noticed that drain you very quickly. So I turned off bluetooth, reduces the brightness of the screen and wifi on when I used it. I loaded 100% today, and according to the battery report used for 1 h and 50 min. (audio, videos Youtube Safari 91% Config Kindle of 5%, Home and Lock Screen 3%, 1%), time to sleep 10: 00 and 9 min. and the battery icon displays between 50 and 60 per cent of costs. It is the average or do you think the device is defective? Thanks in advance.

    On the basis of messages as your battery life seems comparable to others. Note that % battery is not accurate on an iPod, then you can not go this way.

    The test is responsible for at least 6 hours and read a video. You should get 5-6 hours

  • East-audio/video or advertising photos in the tab 'not open' affect the performance of Firefox?

    From what I understand the audio Forum leaking by a tab can be cut. This means that the most important activity such as periodic updates on a page to download advertisements could also affect Firefox performance even if the tab has not been clicked. Is this true?

    Once the tab has been loaded, any video or audio active in this tab will have a negative impact on the performance of Firefox.

    In the options, you can tell Firefox to not load the tab until it is selected, but once you select the tab for the first time, the site will remain responsible.

  • Twitter: Your account may not perform this action. Please, refresh the page and try again.

    Since the update to Firefox 41.0.2 I couldn't use Twitter.com. When I try to tweet, favorite, or retweet the following error occurs. Your account may be able to perform this action. Please, refresh the page and try again. There are a couple of other users who have the same problem, but it was tinkered with Mozilla and the other pending.

    It started with the update to 41.0.2 and twitter works in all other browsers, but not Mozilla.

    Here's this other thread with the DIY: Impossible of Retweet, tweet or articles favorite on Twitter, even when I refresh the page.

    I think there must be a setting or a question Add on. Your extensions look pretty standard, so I'm leaning towards a parameter of the problem. You could test as follows:

    By default, Windows hides the .js extension. To make sure that the following steps work, you have to disable this feature, at least temporarily. This article has the steps: http://windows.microsoft.com/en-us/windows/show-hide-file-name-extensions

    Open the settings folder (AKA Firefox profile) current Firefox help

    • button "3-bar" menu > "?" button > troubleshooting information
    • (menu bar) Help > troubleshooting information
    • type or paste everything: in the address bar and press Enter

    In the first table of the page, click on the view file"" button. This should launch a new window that lists the various files and folders in Windows Explorer.

    Leave this window open, switch back to Firefox and output, either:

    • "3-bar" menu button > button "power".
    • (menu bar) File > Exit

    Pause while Firefox finishing its cleanup, then rename prefs.js to something like prefs.old.

    Launch Firefox back up again and it must use the default settings (for example, integrated home page). If you need to restore your previous session windows and tabs, go ahead and select restore previous Session from the history menu.

    Twitter works best? If so, we could try to understand the precise adjustment at fault or you could rebuild your settings. Or you can undo the change by renaming the new prefs.js to prefs.txt and rename prefs.old back to prefs.js (with Firefox closed, as you did before) and understand it through a little trial and error.

  • Increase the performance of MAC with the SSD upgrade

    I have a 21.5-inch iMac model 14.1 (end 2013) with 8 GB of memory and a 1 TB drive. On this, I use some applications in memory such as Adobe CS 5.5 and VMWare Fusion 8.1.1. I have Applecare on the machine until September 2017. I often find myself running out of memory. My goto solution would be to increase the memory and replace the hard drive with an SSD. I fear, however, that this cancels my Applecare. My research indicates that while that frowned upon, I can upgrade my memory and keep my Applecare as long as it is done by an authorized by Apple, but if I do the SSD I'm out of luck for the installed components. My thought is that I can get an external SSD and move the ' WIndows 10' VM (s), as well as expand and move the swapfiles for the SSD system.»

    My questions are am I right about the Applecare and warranty and I plan to use an external SSD to accelerate performance and ease the work of memory constraints?

    I have f

    I have a Macbook Air in 2010 and also a 2008 iMac - both with only 4 GB of memory (you have twice as much), both running El Capitan and the two with SSD - and perform very well. The 2008 iMac used to have a rotating disc which has recently failed, with the replacement of SSD, it is a remarkable transformation with the new SSD, it seems very quickly for me. Both have Photoshop CS4, which is not used much more, but they run this software very well, as well as MS Office 2011 and other programs such as Mail, Safari, Firefox, etc. (Firefox + Photoshop together put a noticeable load on machines, in fact, but while I sometimes hear the fans come on the Macbook Air, it maintains not up very well) No slowdown) You'll be in great shape with a SSD for your newer computer. These old machines that I use have Core 2 Duo CPUs, chips relatively slow, but they seem very quickly with the SSD.

    You will need to check with Apple directly on your AppleCare and so that would be affected. I don't know that anyone is not Apple should trust this question.

Maybe you are looking for