Scorm-based test causes too many Blackboard http requests

We are looking into a problem with scorm-based tests and learning  modules created in Adobe Captivate. Viewing the scorm content in our Blackboard LMS generates ridiculous amounts of network traffic. A simple click in the scorm module triggers  anything between 10 and 100+ http-requests, even if no interaction with  the server is required. The same click sometimes results in 5 requests, other times in 50  requests or more.It's always a sequence of the same two requests, see below (only the max value in "Keep-Alive: timeout=10, max=98" counts down).
If these scorm modules are taken by a group of students, the enormous amount of http requests put a lot of pressure on our Blackboard system, which results in a slow behaviour of the modules. Has anyone seen this behaviour and does anyone know of a way to prevent it?
(below, part of the http headers collected with the Firefox Live HTTP Headers Add-on)
https://...cc.kuleuven.be/courses/1/a-C112956-K/content/_7409447_1/SCORM_support/scorm_sup port.swf?invokeMethod=methodToExecute&lc_name=lc_name&param=tempVar|true
GET /courses/1/a-C112956-K/content/_7409447_1/SCORM_support/scorm_support.swf?invokeMethod=me thodToExecute&lc_name=lc_name&param=tempVar|true HTTP/1.1    
Host: ...cc.kuleuven.be    
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;     rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12    
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8    
Accept-Language: en-us,en;q=0.5     Accept-Encoding: gzip,deflate    
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7    
Keep-Alive: 115    
Connection: keep-alive    
Referer: https://...cc.kuleuven.be/courses/1/a-C112956-K/content/_7409447_1/ABT%20Excel%20Toets4.ht m    
Cookie: JSESSIONID=2FFDF51EB1DFD4B73B539C63607A9177.root;     __utma=137656618.1128290341.1286972380....
If-Modified-Since: Mon, 06 Dec 2010 17:40:03 GMT
If-None-Match: W/"149-1291657203000"
HTTP/1.1 304 Not Modified
Date: Fri, 10 Dec 2010 09:00:13 GMT    
Server: Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8i mod_jk/1.2.27    
X-Blackboard-appserver: ...cc.kuleuven.be    
X-Blackboard-product: Blackboard Learn™ 9.0.505.0    
Set-Cookie: session_id=80EA2381B7970776B9C3202ADBDEC94E; Path=/    
Set-Cookie: s_session_id=FB7D2433E54EFA941E49E6C79B536CDA; Path=/;     Secure    
Etag: W/"149-1291657203000"    
Content-Length: 0    
Keep-Alive: timeout=10, max=100   
Connection: Keep-Alive    
Content-Type: text/plain; charset=iso-8859-1
https://../courses/1/a-C112956-K/content/_7409447_1/SCORM_support/scorm_support.swf?invoke Method=methodToExecute&lc_name=lc_name&param=tempVar|true    
GET /courses/1/a-C112956-K/content/_7409447_1/SCORM_support/scorm_support.swf?invokeMethod=me thodToExecute&lc_name=lc_name&param=tempVar|trueHTTP/1.1    
Host: ...kuleuven.be    
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;     rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12    
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8    
Accept-Language: en-us,en;q=0.5    
Accept-Encoding: gzip,deflate    
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7    
Keep-Alive: 115    
Connection: keep-alive    
Referer:     https://../courses/1/a-C112956-K/content/_7409447_1/ABT%20Excel%20Toets4.htm    
Cookie: JSESSIONID=2FFDF51EB1DFD4B73B539C63607A9177.root;     __utma=137656618.1128290341.1286972380...
If-Modified-Since: Mon, 06 Dec 2010 17:40:03 GMT    
If-None-Match: W/"149-1291657203000"   
HTTP/1.1 304 Not Modified    
Date: Fri, 10 Dec 2010 09:00:13 GMT    
Server: Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8i mod_jk/1.2.27    
X-Blackboard-appserver: ...cc.kuleuven.be    
X-Blackboard-product: Blackboard Learn™ 9.0.505.0    
Set-Cookie: session_id=80EA2381B7970776B9C3202ADBDEC94E; Path=/    
Set-Cookie: s_session_id=FB7D2433E54EFA941E49E6C79B536CDA; Path=/; Secure    
Etag: W/"149-1291657203000"    
Content-Length: 0    
Keep-Alive: timeout=10, max=98    
Connection: Keep-Alive    
Content-Type: text/plain; charset=iso-8859-1

Simply add the call to your exception hander. E.g.
EXCEPTION
         WHEN OTHERS
         THEN
               UTL_TCP.Close_All_Connections;
               INSERT INTO excep_trans (P_WORD_EXP, UPDATE_TIME, COUNTER)
                 VALUES (VC1.RAW_VAL_TXT, SYSDATE, cnt);
..etc..
END;Also consider using proper coding standards. There is NO modern day programming language standard that says to write (selective) reserved words in uppercase. Write in lowercase. Use camelcase and pascalcase for variable names and procedures/functions/methods. Restrict the use of uppercase to defining identifiers such as compiler macros or constants.
Do yourself a favour and read, understand and apply the basic naming standards as detailed in .Net Guidelines for Names and Code Conventions for the Java Programming Language.

Similar Messages

  • ORA-29270: too many open HTTP requests

    Hi,
    We have a requirement like, we will get bulk data (2 GB) data file with different languages(Russian, chinese, Japanese, German) etc. and we need to load these data into our databse also we have to translate the same.
    We are using Oracle 11g.
    We had used Oracle httpuritype - And the below mentioned procedure PROCEDURE TEST.PRC_TRANS_GERMAN will call the function - trans_jef
    Input parameter for PRC_TRANS_GERMAN - > To_language and from Language. and this procedure will store the translated word in the seperate table.
    Input parameter for the function trans_jef - > Word to be translated , from languae, to_language. And this function will return the translated word.
    The issue I am facing is when I am passing the table of around 10000 records, around 4000 rows are not getting translated. So when i try to capture the error in exception- the error is
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1819
    ORA-29270: too many open HTTP requests
    When I try to re execute the missed words, they were translated. But they are not getting translated in one go because of the too many http open request.
    So could you please let me know how to resolve this ORA-29270 errror. I know we have to end the request and start again. But not sure how to do. Can some one help with this~!!!!
    Translator
    CREATE OR REPLACE FUNCTION trans_jef (v_RawText    IN VARCHAR2,
                                          v_SrcLang    IN VARCHAR2,
                                          v_DestLang   IN VARCHAR2)
       RETURN CLOB
    IS
        v_EscRawText    VARCHAR2 (3000);
       v_XlateUrl      VARCHAR (3000);
       --v_SrcLang Varchar(10) ;-- := 'de';
       --v_DestLang Varchar(10) ; -- := 'en';
       v_XlateResult   CLOB;
       l_result        CLOB;
    BEGIN
       DBMS_OUTPUT.ENABLE (10000000);
        v_EscRawText := UTL_URL.escape (v_RawText, TRUE, 'UTF-8');
       v_XlateUrl :=
             'http://translate.google.com/translate_a/t?client=t&text='
          || v_EscRawText
          || '&hl='
          || v_DestLang
          || '&sl='
          || v_SrcLang
          || '&tl='
          || v_DestLang
          || '&ie=UTF-8&oe=UTF-8&multires=1&oc=1&prev=btn&ssel=0&tsel=0&sc=1';
         v_XlateResult := httpuritype (v_XlateUrl).getclob ();
       -- dbms_output.put_line (v_XlateResult);
       l_result := TRIM (BOTH '"' FROM REGEXP_SUBSTR (v_XlateResult, '"[^"]+"'));
        RETURN l_result;
    END;
    /* Formatted on 07-09-2012 09:21:05 (QP5 v5.215.12089.38647) */
    CREATE OR REPLACE PROCEDURE TEST.PRC_TRANS_GERMAN (TO_LANG1     IN VARCHAR2,
                                                       FROM_LANG1   IN VARCHAR2)
    IS
       P_CHINESE         VARCHAR2 (3000);
       FROM_LANG         VARCHAR2 (3000);
       FROM_LANG_CODE    VARCHAR2 (3000);
       TO_LANG_CODE      VARCHAR2 (3000);
       FROM_LANG_CODE1   VARCHAR2 (3000);
       TO_LANG_CODE1     VARCHAR2 (3000);
       cnt               NUMBER := 1;
       counter           NUMBER;
       CURSOR C1
       IS
          SELECT RAW_VAL_TXT FROM T_TRANS_VAL;
       VC1               C1%ROWTYPE;
    BEGIN
       OPEN C1;
       LOOP
          FETCH C1 INTO VC1;
          EXIT WHEN C1%NOTFOUND;
          BEGIN
             TO_LANG_CODE :=
                CASE TO_LANG1
                   WHEN 'English' THEN 'en'
                   WHEN 'Chinese Simplified' THEN 'zh-CN'
                   WHEN 'Chinese Tradational' THEN 'zh-TW'
                   WHEN 'German' THEN 'de'
                   WHEN 'Japanese' THEN 'ja'
                --other languages
                END;
             FROM_LANG_CODE :=
                CASE FROM_LANG1
                   WHEN 'English' THEN 'en'
                   WHEN 'Chinese Simplified' THEN 'zh-CN'
                   WHEN 'Chinese Tradational' THEN 'zh-TW'
                   WHEN 'German' THEN 'de'
                   WHEN 'Japanese' THEN 'ja'
                other languages
                --                 else 'auto'
                END;
             SELECT trans_jef (VC1.RAW_VAL_TXT, FROM_LANG_CODE, TO_LANG_CODE)
               INTO P_CHINESE
               FROM DUAL;
    -- same translator function is used. Language used is simplied chinese.
    -- We can use traditional Chinese as well ('zh-TW'), which works perfectly.
             FROM_LANG_CODE1 := --decode(from_lang,'en','English','ar','Arabic', from_lang);
                CASE FROM_LANG_CODE
                   WHEN 'en' THEN 'English'
                   WHEN 'zh-CN' THEN 'Chinese Simplified'
                   WHEN 'zh-TW' THEN 'Chinese Tradational'
                   WHEN 'de' THEN 'German'
                   WHEN 'ja' THEN 'Japanese'
                --other languages
                END;
             TO_LANG_CODE1 := --decode(from_lang,'en','English','ar','Arabic', from_lang);
                CASE TO_LANG_CODE
                   WHEN 'en' THEN 'English'
                   WHEN 'zh-CN' THEN 'Chinese Simplified'
                   WHEN 'zh-TW' THEN 'Chinese Tradational'
                   WHEN 'de' THEN 'German'
                   WHEN 'ja' THEN 'Japanese'
                --  other languages
                END;
             INSERT INTO t_trans
                  VALUES (FROM_LANG_CODE1,
                          VC1.RAW_VAL_TXT,
                          TO_LANG_CODE1,
                          P_CHINESE);
             COMMIT;
          EXCEPTION
             WHEN OTHERS
             THEN
                 INSERT INTO excep_trans (P_WORD_EXP, UPDATE_TIME, COUNTER)
                     VALUES (VC1.RAW_VAL_TXT, SYSDATE, cnt);
                INSERT INTO error_message
                     VALUES (DBMS_UTILITY.FORMAT_ERROR_STACK);
                 COMMIT;
          END;
        END LOOP;
       CLOSE C1;
    END;
    /Edited by: 950814 on 6 Sep, 2012 11:16 PM

    Simply add the call to your exception hander. E.g.
    EXCEPTION
             WHEN OTHERS
             THEN
                   UTL_TCP.Close_All_Connections;
                   INSERT INTO excep_trans (P_WORD_EXP, UPDATE_TIME, COUNTER)
                     VALUES (VC1.RAW_VAL_TXT, SYSDATE, cnt);
    ..etc..
    END;Also consider using proper coding standards. There is NO modern day programming language standard that says to write (selective) reserved words in uppercase. Write in lowercase. Use camelcase and pascalcase for variable names and procedures/functions/methods. Restrict the use of uppercase to defining identifiers such as compiler macros or constants.
    Do yourself a favour and read, understand and apply the basic naming standards as detailed in .Net Guidelines for Names and Code Conventions for the Java Programming Language.

  • Report causes too many open cursors

    Hello there!
    I've got the following situation:
    I've a very heavy report used for generating our Users Manual. In Reports 6i this Report works fine, generating the Manual works.
    In 10g the Report starts, and formats about 240 pages (in 6i I can generate over 1000 pages and more with this report), and cancels with the message "too many open cursors".
    So I took a look at the open cursors:
    In 6i there are about 100 open cursors caused by this report; in 10g there are...uhm...in all cases to much for the max_open_cursors parameter of the database (standard value which is used by our application is 1000; increasing this to e.g. 5000 resulted in the same behaviour => too many open cursors).
    Checked the open cursors while running the report which showed the following behaviour:
    The report formats about 230 pages, and opens about 20 cursors (~30 sec.). for the next 10 sites the report opens the pending 980 cursors (~5 sec.), and stops formatting...
    So it seems the report server causes some bad recursion: When restarting the reports server and re-running the report, I get sometimes the following error:
    Mit Fehler beendet: REP-536870981: Interner Fehler REP-62204: Interner Fehler beim Schreiben des Bildes BandCombine: a row of the matrix does not have the correct number of entries, should be OpImage.getExpandedNumBands(source0.getSampleModel(), source0.getColorModel()) + 1.. REP-0069: Interner Fehler REP-50125: Exception abgefangen: java.lang.NullPointerException REP-0002: Unable to retrieve a string from the Report Builder message file. REP-536870981:
    or maybe the report server tries to paralellize some querys (as this report consists of about 5 querys)?
    As said - this is a very complex report (my colleague spent about 3 months of his life with creating it and that's not why he is a lamer in reports ;-)) so it's very hard to give you a repcase, but if anyone knows some advice like "edit the <repservername>.conf; append 'DO NEVER EVER PARALLELYZE QUERYS' to the config" or something this would be very useful ;-).
    many thanks
    best regards
    Christian

    I've now located the problem:
    The report consists of several querys based on a ref cursor; and this cursors are opend and not closed in 10g...
    I'll open a SR on metalink....
    best regards
    Christian

  • I do not have a backup from Mavericks, but Yosemite is causing too many problems. In LAYMAN'S terms, is there a way to get Mavericks back without losing all my files?

    I updated to Yosemite while I was overseas and didn't have strong enough internet to do a Time Machine backup (it took hours to get Yosemite as it was and now I know that was dumb). Yosemite has made my older Mac almost un-usable. In LAYMAN'S terms, Is there a way I can go back to Mavericks or even an older system without losing my current files? I know nothing about computers and have not been able to find anyone in town that could help. Even the guy at the Genius Bar at Apple couldn't figure out how to help me. This whole Yosemite debacle has been the first time I've been disappointed in Apple. It has gotten me questioning whether I should go back to a PC.

    This is the report. Thanks in advance for any help you can give!
    EtreCheck version: 2.1.8 (121)
    Report generated March 16, 2015 at 7:48:53 PM CDT
    Download EtreCheck from http://etresoft.com/etrecheck
    Click the [Click for support] links for help with non-Apple products.
    Click the [Click for details] links for more information about that line.
    Click the [Adware! - Remove] links for help removing adware.
    Hardware Information: ℹ️
        MacBook (13-inch, Late 2009) (Technical Specifications)
        MacBook - model: MacBook6,1
        1 2.26 GHz Intel Core 2 Duo CPU: 2-core
        2 GB RAM Upgradeable
            BANK 0/DIMM0
                1 GB DDR3 1067 MHz ok
            BANK 1/DIMM0
                1 GB DDR3 1067 MHz ok
        Bluetooth: Old - Handoff/Airdrop2 not supported
        Wireless:  en1: 802.11 a/b/g/n
        Battery Health: Replace Soon - Cycle count 1081
    Video Information: ℹ️
        NVIDIA GeForce 9400M - VRAM: 256 MB
            Color LCD 1280 x 800
    System Software: ℹ️
        OS X 10.10.2 (14C1510) - Time since boot: 5 days 22:13:13
    Disk Information: ℹ️
        Hitachi HTS545025B9SA02 disk0 : (250.06 GB)
            EFI (disk0s1) <not mounted> : 210 MB
            Macintosh HD (disk0s2) / : 249.20 GB (58.48 GB free)
            Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
        MATSHITADVD-R   UJ-898 
    USB Information: ℹ️
        Apple Inc. Built-in iSight
        Apple Inc. BRCM2070 Hub
            Apple Inc. Bluetooth USB Host Controller
        Apple Inc. Apple Internal Keyboard / Trackpad
    Gatekeeper: ℹ️
        Mac App Store and identified developers
    Adware: ℹ️
        Geneio [Adware! - Remove]
    Kernel Extensions: ℹ️
            /Library/Extensions
        [loaded]    com.globaldelight.driver.BoomDevice (1.3 - SDK 10.9) [Click for support]
            /System/Library/Extensions
        [not loaded]    com.ZTE.driver.ModemDriverMac (1.0.2d1) [Click for support]
        [not loaded]    com.ZTE.driver.ModemDriverMacEx (1.0.6d1) [Click for support]
        [not loaded]    com.driver.JRDMassStorageDriver32 (1.0.1) [Click for support]
        [not loaded]    com.driver.JRDMassStorageDriver64 (1.0.1) [Click for support]
        [not loaded]    com.driver.JRDUSBModemData32 (1.0.1) [Click for support]
        [not loaded]    com.driver.JRDUSBModemData64 (4.0.8) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDECMControlDriver32 (1) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDECMControlDriver64 (1) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDECMDataDriver32 (1) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDECMDataDriver64 (1) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDUSBCDC32 (1) [Click for support]
        [not loaded]    com.jrdcom.driver.JRDUSBCDC64 (1) [Click for support]
        [not loaded]    com.wdc.driver.1394.64.10.9 (1.0.1 - SDK 10.9) [Click for support]
        [not loaded]    com.wdc.driver.USB.64.10.9 (1.0.1 - SDK 10.9) [Click for support]
    Startup Items: ℹ️
        HWNetMgr: Path: /Library/StartupItems/HWNetMgr
        HWPortDetect: Path: /Library/StartupItems/HWPortDetect
        Startup items are obsolete in OS X Yosemite
    Problem System Launch Agents: ℹ️
        [killed]    com.apple.CallHistoryPluginHelper.plist
        [killed]    com.apple.CallHistorySyncHelper.plist
        [killed]    com.apple.cloudd.plist
        [killed]    com.apple.cmfsyncagent.plist
        [killed]    com.apple.coreservices.appleid.authentication.plist
        [killed]    com.apple.EscrowSecurityAlert.plist
        [killed]    com.apple.icloud.fmfd.plist
        [killed]    com.apple.nsurlsessiond.plist
        [killed]    com.apple.printtool.agent.plist
        [killed]    com.apple.sbd.plist
        [killed]    com.apple.scopedbookmarkagent.xpc.plist
        [killed]    com.apple.security.cloudkeychainproxy.plist
        [killed]    com.apple.spindump_agent.plist
        [killed]    com.apple.telephonyutilities.callservicesd.plist
        14 processes killed due to memory pressure
    Problem System Launch Daemons: ℹ️
        [killed]    com.apple.awdd.plist
        [killed]    com.apple.ctkd.plist
        [killed]    com.apple.emond.aslmanager.plist
        [killed]    com.apple.ifdreader.plist
        [killed]    com.apple.nehelper.plist
        [killed]    com.apple.nsurlsessiond.plist
        [killed]    com.apple.periodic-daily.plist
        [killed]    com.apple.periodic-monthly.plist
        [killed]    com.apple.periodic-weekly.plist
        [killed]    com.apple.softwareupdate_download_service.plist
        [killed]    com.apple.softwareupdated.plist
        [killed]    com.apple.spindump.plist
        [killed]    com.apple.tccd.system.plist
        [killed]    com.apple.wdhelper.plist
        [killed]    com.apple.xpc.smd.plist
        15 processes killed due to memory pressure
    Launch Daemons: ℹ️
        [loaded]    com.adobe.fpsaud.plist [Click for support]
    User Launch Agents: ℹ️
        [failed]    com.apple.CSConfigDotMacCert-[...]@me.com-SharedServices.Agent.plist
        [loaded]    com.genieo.completer.download.plist [Adware! - Remove]
        [running]    com.genieo.completer.update.plist [Adware! - Remove]
        [loaded]    com.google.keystone.agent.plist [Click for support]
        [running]    com.spotify.webhelper.plist [Click for support]
        [failed]    com.yourcompany.uninstall.plist [Click for support] [Click for details]
        [failed]    com.zeobit.MacKeeper.Helper.plist [Click for support]
    User Login Items: ℹ️
        None
    Internet Plug-ins: ℹ️
        FlashPlayer-10.6: Version: 16.0.0.305 - SDK 10.6 [Click for support]
        QuickTime Plugin: Version: 7.7.3
        Flash Player: Version: 16.0.0.305 - SDK 10.6 Outdated! Update
        Default Browser: Version: 600 - SDK 10.10
        Google Earth Web Plug-in: Version: 7.1 [Click for support]
        Silverlight: Version: 5.1.30317.0 - SDK 10.6 [Click for support]
        iPhotoPhotocast: Version: 7.0
    User internet Plug-ins: ℹ️
        fbplugin_1_0_1: Version: Unknown [Click for support]
        fbplugin_1_0_3: Version: Unknown [Click for support]
    3rd Party Preference Panes: ℹ️
        Flash Player  [Click for support]
    Time Machine: ℹ️
        Skip System Files: NO
        Auto backup: NO - Auto backup turned off
        Volumes being backed up:
            Macintosh HD: Disk size: 249.20 GB Disk used: 190.72 GB
        Destinations:
            Time Machine Backups [Local]
            Total size: 319.73 GB
            Total number of backups: 2
            Oldest backup: 2015-01-06 09:34:17 +0000
            Last backup: 2015-03-07 05:59:25 +0000
            Size of backup disk: Too small
                Backup size 319.73 GB < (Disk used 190.72 GB X 3)
    Top Processes by CPU: ℹ️
             7%    WindowServer
             1%    Google Chrome
             0%    Mail
             0%    nbagent
    Top Processes by Memory: ℹ️
        79 MB    Google Chrome
        39 MB    WindowServer
        34 MB    Google Chrome Helper
        21 MB    Mail
        19 MB    System Events
    Virtual Memory Information: ℹ️
        53 MB    Free RAM
        369 MB    Active RAM
        342 MB    Inactive RAM
        509 MB    Wired RAM
        47.14 GB    Page-ins
        1.29 GB    Page-outs
    Diagnostics Information: ℹ️
        Mar 14, 2015, 07:28:29 PM    /Users/[redacted]/Library/Logs/DiagnosticReports/findNames_2015-03-14-192829_[r edacted].crash
        Mar 16, 2015, 12:36:53 AM    /Users/[redacted]/Library/Logs/DiagnosticReports/findNames_2015-03-16-003653_[r edacted].crash

  • I want to go back to 10.6, 10.7 causing too many problems

    I have a late 2009 MBP and upgradd to Lion. I am having issues with a bunch of my software and want to go back to 10.6, how do I do this?

    https://discussions.apple.com/thread/4003257?start=0&tstart=0

  • Should i update my iPhone, or does it cause too many problems?

    should i update my iPhone to ios 5? because i have heard a lot of bad things happening so is it worth it or did you regret it? any thing that could be of help is much appreciated thanks

    No, that's not true, if your phone is officially unlocked. You have nothing to worry about.

  • Add contact based on username: too many results!

    Someone gave me their exact Skype username. I now want to add this contact. When I go to add contact and enter this username, I get a long list of search results. The results do not show the usernames, but rather their actual names. How do I know which is the person with the username? Is there a way to verify the username?

    This is a really poor design.How am I supposed to know this? I could assume that a skype callname is unique, so if I enter a skype callname in the search window, I only expect one result.What's more, the list that is given now, it is impossible to see the actual skype callname for each returned contact. Really poor,.... please fix this.

  • Too many POST amf requests in BlazeDS

    I'm test driving a very good example of using flex, blazeds and spring posted by Jon Rose and James Ward at dzone:
    http://refcardz.dzone.com/refcardz/flex-4-and-spring-3. Everything works just fine until CreateFriend example, where it constantly does "POST amf" requests to the server, showing hourglass cursor. I can't find anywehere in the code where these post requests are initiated. Anyone has better idea what could cause this behaviour?

    look at the more Like this on the right hand side if this screen.
    Ive heard lots of reports of this though i never have the problem myself

  • Getting ORA-06512: at "SYS.UTL_HTTP", line 1022 ORA-29270: too many open

    hi
    I am getting the following error while calling the procedure in the batch process
    ORA-06512: at "SYS.UTL_HTTP", line 1022
    ORA-29270: too many open HTTP requests
    Could you please help me on this? As this is getting affected in the live databases.
    ORA-06512: at "SYS.UTL_HTTP", line 1022
    ORA-29270: too many open HTTP requests
    CREATE OR REPLACE PROCEDURE Send_To_Spg(
    PTRANSACTION_ID               IN          VARCHAR2,
    PCHANNEL_TYPE               IN VARCHAR2 DEFAULT NULL,
    PCSS_ORDER_NUMBER          IN VARCHAR2 DEFAULT NULL,
    PTELEPHONE_NUMBER          IN VARCHAR2 DEFAULT NULL,
    PSCENARIO_TYPE               IN VARCHAR2 DEFAULT NULL,
    PCUSTOMER_REQUIRED_DATE IN          VARCHAR2 DEFAULT NULL,
    PCUSTOMER_REQUIRED_TIME IN          VARCHAR2 DEFAULT NULL,
    PCANCELLATION_REASON     IN          VARCHAR2 DEFAULT NULL,
    PCANCELLATION_NOTES          IN          VARCHAR2 DEFAULT NULL,
    PSMPF_RETENTION               IN          VARCHAR2 DEFAULT NULL,
    PEMERGENCY_WINBACK          IN          VARCHAR2 DEFAULT NULL,
    PCSS_PROJECT_ID               IN          VARCHAR2 DEFAULT NULL,
    PCSS_ORDER_NOTES          IN          VARCHAR2 DEFAULT NULL,
    PREASON_FOR_CESSATION     IN          VARCHAR2 DEFAULT NULL,
    P_RESPONSE                    OUT VARCHAR2,
    PSMART_USER_ID               IN VARCHAR2 DEFAULT NULL,
    PORACLE_ERROR               OUT VARCHAR2,
    PORACLE_ERROR_MESSAGE     OUT          VARCHAR2,
    PRESPONSE_TIME               OUT          NUMBER,
    PDATA_TRANSFER_STATUS     OUT          VARCHAR2)
    IS
    v_scenario_type               VARCHAR2(20); -- Varialble to Hold Time Out of every request to SPG
    v_transaction_time          NUMBER;          -- Total time in which Request to SPG was processed
    v_record_inserted_at     DATE;          -- Date/Time about the record insertion to the Error Handler
    v_start_time               NUMBER;          -- Variable to hold Start Time for calculationg Transaction Time
    v_url                         VARCHAR2(32767);-- URL to use when sending data to SPG
    vtransaction_id               VARCHAR2(18); -- Variable to hold Transaction ID for the request
    v_buffer                    VARCHAR2(32760);-- Variable to read response from the SPG interface
    v_timeout                    PLS_INTEGER; -- Time Out for each Transaction
    v_oracle_err_msg          VARCHAR2(600); -- Variable to hold Oracle Error Message
    v_resp                UTL_HTTP.RESP; -- Response Object
    v_req                UTL_HTTP.REQ; -- Request Object
    v_userid_pwd               SMT_ORACLE_PARAMETERS%ROWTYPE; --Variable declared to contain User ID & Password
    vl_RetCode          VARCHAR2(5000);
    vl_std_returnCode     VARCHAR2(3000);
    --PDATA_TRANSFER_STATUS Holds the Data Transfer Status which can have possible values as
    -- N => Data Has not been sent to SPG
    -- Y => Received Successful response from SPG
    -- F => On the First try to Send data to SPG Oracle Error Occured or response from SPG was a faulure
    -- S => On the Second try to Send data to SPG Oracle Error Occured or response from SPG was a faulure
    -- T => Data Has been transferred to the Error Log Table
    -- X => Data need not be transfered to Error Log Table.
    --Location of the timeout, URL & User Id & Password in Standing Data.
    c_url_stopwlr SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_WLR';-- Stop WLR URL
    c_url_cancelown SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_OWN';-- Cancel own URL
    c_url_cancelother SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_OTH';-- Cancel other URL
    c_url_amendcrd SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPG_CRD';--Amend CRD URL
    c_spg_useridpwd SMT_ORACLE_PARAMETERS.PARAMETER_CODE%TYPE:='SPGIDPWD'; --Contains user id and pwd
    ctimeout smt_parameters.parameter_code%TYPE:='SPGTO'; --This holds the timeout parameter
    BEGIN
         --In case the calling batch process can pass this value this SQL read will not be required & can be deleted
         --Read data transfer status for the transaction Id
         SELECT data_transfer_status INTO PDATA_TRANSFER_STATUS     FROM SPG_INTERFACE_TABLE
         WHERE transaction_id     =     PTRANSACTION_ID;
         --Record the start time
         v_start_time:=DBMS_UTILITY.GET_TIME;
         --If Data transfer status is S then send the record to error handler
         IF PDATA_TRANSFER_STATUS = 'S' THEN
              Error_Handler(PTRANSACTION_ID,PSMART_USER_ID,PORACLE_ERROR,PORACLE_ERROR_MESSAGE,v_record_inserted_at,PDATA_TRANSFER_STATUS);
         ELSE
         --In case Data Tranfer Status is something other than S then send the request to SPG
              --Initialise other variables which will be populated during the journey
              P_RESPONSE                    :=     '';
              PORACLE_ERROR               :=     NULL;
              PORACLE_ERROR_MESSAGE     :=     NULL;
              PRESPONSE_TIME               :=     0;
         --Read timeout parameter from standing data.
              BEGIN
                   SELECT VALUE INTO v_timeout FROM smt_parameters WHERE parameter_code=ctimeout;
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                   v_timeout:=30;
              WHEN OTHERS THEN
                   v_timeout:=30;
              END;
         -- Construct the URL for Stop WLR Scenario
              IF PSCENARIO_TYPE = 'STOP_WLR' THEN
                   BEGIN
                   -- Read the Initial URL from Standing Data
                   SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_stopwlr
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
                   --handle unforseen exception
                   EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                        v_url:='Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_winback_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                        v_url:='Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_winback_details'; --After testing the same, URL will be fetched from the Query
                   END;
                   --construct the URL depending on the parameters to be passed to the url
                   v_url := v_url || '?';
                   v_url := v_url || 'p_data_entered=' || Smart_Urlencode('xmloverhttp') || '&';
                   v_url := v_url || 'p_channel_type=' || Smart_Urlencode(PCHANNEL_TYPE)|| '&';
                   v_url := v_url || 'p_css_start_order_no=' || Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
                   v_url := v_url || 'p_tel_no=' || Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
                   v_url := v_url || 'p_crd=' || Smart_Urlencode(PCUSTOMER_REQUIRED_DATE)|| '&';
                   v_url := v_url || 'p_take_over_time=' || Smart_Urlencode(PCUSTOMER_REQUIRED_TIME)|| '&';
                   v_url := v_url || 'p_retainsmpf=' || Smart_Urlencode(PSMPF_RETENTION)|| '&';
                   --v_url := v_url || 'p_emergency_winback='                    || Smart_Urlencode(PEMERGENCY_WINBACK)|| '&';
                   v_url := v_url || 'p_projectno=' || Smart_Urlencode(PCSS_PROJECT_ID)|| '&';
                   v_url := v_url || 'p_ordernotes=' || Smart_Urlencode(PCSS_ORDER_NOTES)|| '&';
                   v_url := v_url || 'p_reason_cessation=' || Smart_Urlencode(PREASON_FOR_CESSATION);
              ELSIF PSCENARIO_TYPE='CANCEL_OWN' THEN
              --Fetch the URL for cancel own from standing data.
                   BEGIN
                        SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_cancelown
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
                   EXCEPTION
                             WHEN NO_DATA_FOUND THEN
                             v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelown_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                             v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelown_details'; --After testing the same, URL will be fetched from the Query
                   END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_start_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_cancel_reason=' ||Smart_Urlencode(PCANCELLATION_REASON)|| '&';
              v_url:= v_url || 'p_cancel_notes=' ||Smart_Urlencode(PCANCELLATION_NOTES);
              ELSIF PSCENARIO_TYPE='CANCEL_OTHER' THEN
              --Fetch the URL for cancel own from standing data.
              BEGIN
              SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_cancelother
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                        v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelother_details'; --After testing the same, URL will be fetched from the Query
                   WHEN OTHERS THEN
                        v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_cancelother_details'; --After testing the same, URL will be fetched from the Query
              END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_stop_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_cancel_reason=' ||Smart_Urlencode(PCANCELLATION_REASON);
              ELSIF Pscenario_type='AMEND_CRD' THEN
              --Fetch the URL for cancel own from standing data.
              BEGIN
              SELECT VALUE
                        INTO v_url
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE parameter_code = c_url_amendcrd
                        AND host_id = ( SELECT host_id
                                                      FROM SMART_HOSTS A
                                                      WHERE EXISTS ( SELECT 1
                                                                     FROM DB_PARAMETERS b
                                                                     WHERE A.hostname = b.hostname
                                                                     AND A.database_id = b.database_id));
              --handle unforseen exception
              EXCEPTION
              WHEN NO_DATA_FOUND THEN
                   v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_amendcrd_details'; -- After testing the same , URL will be fetched from the Query
              WHEN OTHERS THEN
                   v_url := 'Http://wls.brassi1c.devenv1.bt.co.uk:64738/pls/spgenv/spg_btrc.add_btrc_amendcrd_details'; -- After testing the same , URL will be fetched from the Query
              END;
              --construct the URL
              v_url := v_url || '?';
              v_url := v_url || 'p_data_entered=' ||Smart_Urlencode('xmloverhttp')|| '&';
              v_url := v_url || 'p_channel_type=' ||Smart_Urlencode(PCHANNEL_TYPE)|| '&';
              v_url := v_url || 'p_css_start_order_no=' ||Smart_Urlencode(PCSS_ORDER_NUMBER)|| '&';
              v_url := v_url || 'p_tel_no=' ||Smart_Urlencode(PTELEPHONE_NUMBER)|| '&';
              v_url := v_url || 'p_crd='                         ||Smart_Urlencode(PCUSTOMER_REQUIRED_DATE)|| '&';
              v_url := v_url || 'p_css_change_order_numbers='||Smart_Urlencode(PCANCELLATION_REASON);
              END IF;
              --this is start of setting parameters for utl http object. the show begins...
              utl_http.set_transfer_timeout(v_timeout);
              --Set the wallet
              --XXXXX e.g.UTL_HTTP.SET_WALLET(?file:DirectoryPath?,'put password here?);
              --Set proxy
              --YYYYY e.g. utl_http.set_proxy(p_proxy_in, p_no_proxy_domains_in);
              v_url := REPLACE(v_url,'%27%27','%27'); -- Fix to ensure Double Quotes are converted to Single Quotes
              --set the required URL to utl http.
              v_req := utl_http.begin_request(v_url);
              --Authentication setting
              --Fetch the user id and password from stnding data.
              BEGIN
                   SELECT *
                        INTO v_userid_pwd
                        FROM SMT_ORACLE_PARAMETERS
                        WHERE PARAMETER_CODE=c_spg_useridpwd
                        AND HOST_ID = ( SELECT HOST_ID
                                            FROM SMART_HOSTS A
                                            WHERE EXISTS ( SELECT 1
                                                                FROM DB_PARAMETERS B
                                                                WHERE A.HOSTNAME = B.HOSTNAME
                                                                AND A.DATABASE_ID = B.DATABASE_ID));
              EXCEPTION
                   WHEN NO_DATA_FOUND THEN
                   P_RESPONSE := 'ORACLE_ERROR: USER id AND Password NOT configured IN SMT_ORACLE_PARAMETERS:SPGIDPWD';
                   WHEN OTHERS THEN
                   P_RESPONSE := 'ORACLE_ERROR: USER id AND Password NOT configured IN SMT_ORACLE_PARAMETERS:SPGIDPWD';
              END;
              --utl_http.set_authentication(v_req, p_username_in, p_password_in);
              utl_http.set_authentication(v_req, v_userid_pwd.description, v_userid_pwd.VALUE);
              v_resp := utl_http.get_response(v_req);
              --Fill in the the response time
              PRESPONSE_TIME := (DBMS_UTILITY.GET_TIME - v_start_time)/100;
              IF v_resp.reason_phrase = 'OK' THEN
                   -- Fetch the response
                   BEGIN
                        LOOP
                        utl_http.read_line(v_resp, v_buffer);
                             P_RESPONSE := P_RESPONSE || v_buffer;
                        END LOOP;
                             utl_http.end_response(v_resp);
                        EXCEPTION
                        WHEN utl_http.end_of_body THEN
                        utl_http.end_response(v_resp);
                        P_RESPONSE := P_RESPONSE || v_buffer;
                   END;
              ELSIF v_resp.reason_phrase <> 'OK' OR P_RESPONSE = '' THEN
                   --error handling starts
                   --If the HTTP Status is not OK then store the error information
                   PORACLE_ERROR_MESSAGE     :=     'Status Code: '|| v_resp.STATUS_CODE||'. Reason Phrase ' ||v_resp.reason_phrase;
                   P_RESPONSE                    :=     'ORACLE_ERROR: '||     ' Reason Phrase ' ||     v_resp.reason_phrase;
                   PORACLE_ERROR               :=     v_resp.STATUS_CODE;
              END IF;
              --In case we got successful response from SPG
              IF P_RESPONSE LIKE '%<RetCde>0</RetCde>%' THEN
                   PDATA_TRANSFER_STATUS     :=     'Y';
              ELSE
                   BEGIN
    SELECT message
                                  INTO vl_std_returnCode
                                  FROM SMT_MESSAGES
                                  WHERE MESSAGE_CODE='SPGANTIDTS';
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
         vl_std_returnCode := '-12545,-29273,-1,401,';
    WHEN OTHERS THEN
                        vl_std_returnCode := '-12545,-29273,-1,401,';
    END;
                   --In case there was an error do not update Data Transfer Status
                   IF PORACLE_ERROR <> NULL AND INSTR(vl_std_returnCode, PORACLE_ERROR || ',', 1, 1) <> 0 THEN
                             PDATA_TRANSFER_STATUS:=PDATA_TRANSFER_STATUS;
                   ELSE
                        vl_RetCode := SUBSTR(P_RESPONSE, INSTR(P_RESPONSE,'<RetCde>', 1, 1),
                        INSTR(P_RESPONSE,'</RetCde>',1,1)+9 - INSTR(P_RESPONSE,'<RetCde>', 1, 1));
                        BEGIN
                             SELECT VALUE
                                  INTO vl_std_returnCode
                                  FROM SMT_ORACLE_PARAMETERS
                                  WHERE PARAMETER_CODE='SPGRCS'
                                  AND HOST_ID = ( SELECT HOST_ID
                                       FROM SMART_HOSTS A
                                       WHERE EXISTS ( SELECT 1
                                                           FROM DB_PARAMETERS B
                                                           WHERE A.HOSTNAME = B.HOSTNAME
                                                           AND A.DATABASE_ID = B.DATABASE_ID));
                   EXCEPTION
                        WHEN NO_DATA_FOUND THEN
                             vl_std_returnCode := '<RetCde>4244</RetCde><RetCde>4245</RetCde><RetCde>4246</RetCde>';
                        WHEN OTHERS THEN
                             vl_std_returnCode := '<RetCde>4244</RetCde><RetCde>4245</RetCde><RetCde>4246</RetCde>';
                        END;
                        IF INSTR(vl_std_returnCode, vl_RetCode, 1, 1) <> 0 THEN
                             --needs not to re attempted.
                             PDATA_TRANSFER_STATUS:='X';
                        ELSE
                             --In case we did'nt got SUCCESSFUL response FROM SPG THEN UPDATE the Data Transfer Status so that the failed requests can be picked up BY the NEXT batch job RUN
                             IF PDATA_TRANSFER_STATUS='N' THEN
                                  --initially if data transfer status was N then update it now to F
                                  PDATA_TRANSFER_STATUS     :=     'F';
                             ELSIF PDATA_TRANSFER_STATUS='F' THEN
                                  --initially if data transfer status was N then update it now to S
                                  PDATA_TRANSFER_STATUS     :=     'S';
                             END IF;
                        END IF;
                   END IF;
              END IF;
              --Now Update all the modified Values
         UPDATE SPG_INTERFACE_TABLE
                   SET     response          =     P_RESPONSE,
                   data_transfer_status     =     PDATA_TRANSFER_STATUS,
                   oracle_error               =     PORACLE_ERROR,
                   oracle_error_message     =     PORACLE_ERROR_MESSAGE,
                   response_time               =     PRESPONSE_TIME
                   WHERE transaction_id     =     PTRANSACTION_ID;
              COMMIT;
    END IF;
    EXCEPTION
         WHEN OTHERS THEN
         --Handling the unhandled exception
         PORACLE_ERROR               :=     SQLCODE;
         PORACLE_ERROR_MESSAGE     :=     SQLERRM;
         P_RESPONSE                    :=     'ORACLE_ERROR: '|| PORACLE_ERROR_MESSAGE;
         PRESPONSE_TIME               :=     (DBMS_UTILITY.GET_TIME - v_start_time)/100;
         SELECT data_transfer_status INTO PDATA_TRANSFER_STATUS
         FROM SPG_INTERFACE_TABLE
         WHERE transaction_id=PTRANSACTION_ID;
         --New functionality to update the oracle error and oracle error message and not the Data Transfer Status
    BEGIN
    SELECT message
    INTO vl_std_returnCode
    FROM SMT_MESSAGES
    WHERE MESSAGE_CODE='SPGANTIDTS';
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    vl_std_returnCode := '-12545,-29273,-1,';
    WHEN OTHERS THEN
    vl_std_returnCode := '-12545,-29273,-1,';
    END;
         vl_RetCode     :=     PORACLE_ERROR || ',';
    IF INSTR(vl_std_returnCode, vl_RetCode, 1, 1) <> 0 THEN
    --If the error is found in above maintained standing data do not change the Data Transfer Status
                   pdata_transfer_status:=pdata_transfer_status;
    ELSE
              IF pdata_transfer_status='N' THEN
                             PDATA_TRANSFER_STATUS     :=     'F';
                             DBMS_OUTPUT.PUT_LINE('DUE TO ERROR DATA COULDN''T GET TRANSFERED TO SPG FOR TRANSACTION'||' '||PTRANSACTION_ID);
                             DBMS_OUTPUT.PUT_LINE(SQLERRM);
              ELSIF pdata_transfer_status='F' THEN
                             PDATA_TRANSFER_STATUS     :=     'S';
                             DBMS_OUTPUT.PUT_LINE('DUE TO ERROR DATA COULDN''T GET TRANSFERED TO SPG FOR TRANSACTION'||' '||PTRANSACTION_ID);
                             DBMS_OUTPUT.PUT_LINE(SQLERRM);
    ELSE
                             DBMS_OUTPUT.PUT_LINE('Failure WHEN sending data TO Error LOG. Data Transfer Status IS ' || PDATA_TRANSFER_STATUS || '. TRANSACTION ID '|| PTRANSACTION_ID);
              END IF;
    END IF;
              --Now update all the information gathered above to the table
         UPDATE SPG_INTERFACE_TABLE
              SET     response          =     P_RESPONSE,
              data_transfer_status     =     PDATA_TRANSFER_STATUS,
              oracle_error               =     PORACLE_ERROR,
              oracle_error_message     =     PORACLE_ERROR_MESSAGE,
              response_time               =     PRESPONSE_TIME
              WHERE transaction_id     =     PTRANSACTION_ID;
              COMMIT;
    END;
    /

    I have fixed the problem by own.
    Seems there are some while space in the endpoint url.
    Fix
    http_req:= utl_http.begin_request
    trim(l_endpoint_url)
    ,'POST'
    ,'HTTP/1.1'
    It works...
    Regards
    BS

  • Too many connections - even after closing ResultSets and PreparedStatements

    I'm getting a "Too many connections" error with MySQL when I run my Java program.
    2007-08-06 15:07:26,650 main/CLIRuntime [FATAL]: Too many connections
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
            at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)I researched on this and found out that I wasn't closing the ResultSet and the PreparedStatement.
    The JDBC connection is closed by a central program that handles connections (custom connection pooling).
    I added the code to close all ResultSets and PreparedStatements, and re-started MySQL as per the instructions here
    but still get "Too many connections" error.
    A few other things come to mind, as to what I may be doing wrong, so I have a few questions:
    1) A few PreparedStatements are created in one method, and they are used in a 2nd method and closed in the 2nd method
    does this cause "Too many connections" error?
    2) I have 2 different ResultSets, in nested while loops where the outer loop iterates over the first ResultSet and
    the inner loop iterates over the second ResultSet.
    I have a try-finally block that wraps the inner while loop, and I'm closing the second ResultSet and PreparedStement
    in the inner while loop.
    I also have a try-finally block that wraps the outer while loop, and I'm closing the first ResulSet and PreparedStatement
    in the outer while loop as soon as the inner while loop completes.
    So, in the above case the outer while loop's ResultSet and PreparedStatements remain open until the inner while loop completes.
    Does the above cause "Too many connections" error?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The following is relevant sections of my code ( it is partially pseudo-code ) that shows the above 2 cases:
    init( Connection jdbcConnection ){
       String firstSQLStatement = "....";
       PreparedStatement ps1 = jdbcConnection.prepareStatement( firstSQLStatement );
       String secondSQLStatement = "....";
       PreparedStatement ps2 = jdbcConnection.prepareStatement( secondSQLStatement );
       String thirdSQLStatement = "....";
       PreparedStatement ps3 = null;
       ResultSet rsA = null;
       try{
            ps3 = jdbcConnection.prepareStatement( thirdSQLStatement );
            rsA = ps3.executeQuery();
            if( rsA.next() ){
                   rsA.getString( 1 );
       }finally{
            if( rsA != null )
                   rsA.close();
            if( ps3 != null )
              ps3.close();
       //Notice, how ps1 and ps2 are created here but not used immediately, but only ps3 is
       //used immediately.
       //ps1 and ps2 are used in another method.
    run( Connection jdbcConnection ){
         ResultSet rs1 = ps1.executeQuery();
            try{
               while(rs1.next()){
                    String s = rs1.getString();
                    ps2.setString(1, s);
              ResultSet rs2 = ps2.executeQuery();
                    try{
                   while(rs2.next()){
                        String s2 = rs2.getString();
                    }finally{
                   if( rs2 != null )
                     rs2.close();
                   if( ps2 != null )
                     ps2.close();
         }catch( Exception e ){
              e.printStackTrace();
         }finally{
            if( rs1 != null )
                  rs1.close();
               if( ps1 != null )
                  ps1.close();
    //Notice in the above case rs1 and ps1 are closed only after the inner
    //while loop completes.
    }I appreciate any help.

    Thanks for your reply.
    I will look at the central connection pooling mechanism ( which was written by someone else) , but that is being used by many other Java programs others have written.
    They are not getting this error.
    An addendum to my previous note, I followed the instructions here.
    http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html
    There's probably something else in my code that is not closing the connection.
    But I just wanted to rule out the fact that opening a PreparedStatement in one method and closing it in another is not a problem.
    Or, if nested ResultSet loops don't cause the problem.
    I've read in a few threads taht "Too many connections" can occur for unclosed RS and PS , and not just JDBC connections.

  • Too many open socket connections causing ColdFusion to crash?

    I’m currently working on an e-commerce site which sends and receives information to/from the client’s order management system via XML over a TCP/IP socket.  It uses a very old java-based custom tag called CFX_JSOCKET (which appears to have been written in 2002) to open the socket, send the data, and get the response.  The code that calls the custom tag and sends/receives data from the OMS pre-dates my working on the site, but its always worked, so I haven’t paid it much attention.
    Back in the summer of 2009 we started experiencing issues with ColdFusion (v.7 on Window 2003 at the time) locking up on a more and more frequent basis, until it ultimately became a daily issue.  After extensive research we narrowed the issue down to the communication between the web server and our client’s order management server.  It seemed the issue with ColdFusion hanging was either related to there being too many connections open, or to these connections hanging and resulting in dead threads.  This an educated guess based on a blog post I’d seen online, not actual monitoring of either CF or the TCP/IP connections.  As soon as we dialed back the timeout on the CFX_JSOCKET tag from 20 seconds to 10, the issue disappeared, so we left it at that and moved on.
    Fast forward to this January. The site is hosted at a new location, on a 64-bit Windows 2008 box running ColdFusion 9.  Over the years traffic on the site has continued to grow.  The nature of the clients business means that August and January are their business times of the year (back to school for college kids) and in January ColdFusion once again started locking up on an almost-daily basis.  
    One significant difference is that the address cleansing software that previously ran on the box and was used to verify shipping addresses is not available for 64-bit, so when we moved to the new server last summer, that task was moved to the client’s order management software and handled via XML like all other interaction with that system. However, while most XML calls to that server (order input, inventory check, etc) take under a second to complete, the address cleansing call regularly takes over 5 seconds to return data, and frequently times out. 
    Once we eliminated the address cleansing call from the checkout process, ColdFusion once again stopped locking up regularly.  So it appears that once again it’s the communication between the web server and the order management server that’s causing problems. We currently have that address cleansing call disabled on the web site in order to keep ColdFusion from crashing, but that’s not a long term solution.
    We don’t have, nor can I find online, the source code for the CFX_JSOCKET custom tag, so I decided I’d write some CF code utilizing the java methods to open the socket, send the data, get the response, and close the connection.  My test code is working fine (under no load).  However, in trying to troubleshoot an issue I had with it, I started monitoring the TCP/IP connections using TCPView.  And I noticed that all the connections to the order management server, whether opened via the custom tag or my new code, remain open in either a TIME_WAIT or FIN_WAIT2 status for well over 2 minutes, even though I know for a fact that my new code is definitely closing the connection from the web server side. 
    They do all close eventually, but I’m wondering 1. Why they’re remaining open that long; 2. Is that normal; and 3. If all these connections remaining open could be what’s causing ColdFusion to choke. 
    Does this sound plausible?  If so, does anyone have any suggestions/recommendations about how to fix it?  My research seems to indicate this might be a matter of the order management system not closing the connection on its end, but I’m in way over my head, and before I go to client and tell them it’s their OMS causing the issue, I need to feel a little more confident that I’m on the right track. 
    Any help or advice would be very greatly appreciated.  And thanks for taking the time to read through my long-winded explanation of the problem.
    Set-up details:
    ColdFusion Version: 9,0,0,251028  Standard 
    Operating System: Windows Server 2008 
    Java Version: 1.6.0_14 
    Java VM Name: Java HotSpot(TM) 64-Bit Server VM 
    Java VM Version: 14.0-b16 
    Thanks,
    Laurie

    Hi Laurie,
    Not aware of custom tag called CFX_JSOCKET. I guess the process you described very well is consuming a resource then you are getting a problem. Trick is what parameter to adjust. Perhaps you are running out of one the threads in CFadmin > Server Settings > Request Tuning.
    I expect if you enable CF Metrics logging where you can log the threads and other resources then you can find out which parameter needs adjusting. Let me know if you want some details on enabling CF Metrics. Perhaps others will have much better idea than me and help without the overhead of logging.
    The other interesting thing is you are using CF9.0.0. Do you have some reasons for not being on updater1 CF9.0.1?
    HTH, Carl.
    PS I posted before however seems to have gone, just hope does not come back and then I have posted twice.

  • HTTP-400 Too many arguments passed error

    I am getting the following error when using a multiselect list item to select/update data in the tabular form.
    Bad Request
    Your browser sent a request that this server could not understand.
    mod_plsql: /pls/otn/wwv_flow.accept HTTP-400 Too many arguments passed in. Got 2346 parameters. Upper limit is 2000
    Oracle-Application-Server-10g/10.1.2.3.0 Oracle-HTTP-Server Server at apex.oracle.com Port 80
    I have built this prototype application on the Oracle’s hosted apex.oracle.com site.
    The application page has three sections. Section 1 is an HTML region with the multiselect list. Section 2 is an HTML region with 20 text items. Section 3 has the tabular form with 25 columns that are used to update the data. The tabular form pagination values “Number of Row” and “Maximum Row Count” are set to 500.
    Up until now, the multiselect list in the Section 1 was just a simple select list and I never had any issues. I guess the number of arguments passed was low. Per our customer requirement, I had to change the simple select list to a multiselect list. Now, If I select multiple values in the select list, I get the above mentioned error. But, it does not seem to happen all the time. For example, the first time I select 3 values in the multiselect list, the page renders fine, and I am able to enter/save data in the tabular form. Then, I select two other values in the multiselect list, I would get the error.
    I am getting this error on the Oracle’s hosted apex.oracle.com site where my prototype application exists. And, according to the error oracle is using 10g/10.1.2.3.0. Is there any way to circumvent this issue so I can demo my application to the customer using the multiselect list?
    I found several threads on this forum regarding the same error and it seems that there was a bug in the older versions of Oracle Application server. Also, there were discussions about setting the PlsqlMaxParameters.
    Our dev/test/prod environment would be set up using the Oracle Application Server-10g/10.1.3. The question is would we need to add a line to set the PlsqlMaxParameters value in the plsql.conf file? In addition, what is the maximum value that it can be set to?
    Please forgive me for the longwinded description and the question - only way I could describe the situation.
    Thanks,
    DP

    Varad and Sc0tt,
    Thank you both for your responses.
    Varad – Yes, I can/will reduce the amount of data so it does not cause the tabular form to go over the 2000 field limit. If that is not possible, I will at least make the users aware of this issue. Since the same data is used for the other pages in the application, the users might want to keep all the data.
    Sc0tt – thanks for providing the information for your environment and settings. To plan for the future, we will have to set the value to something high also, around 8-10K range, and adjust later if we have to.
    Thank you both, I will mark both of your answers as helpful and the question as being answered.
    DP
    (Have either of you used the jquery datepicker solution? If yes, can you please take a look at my thread: Thread: Jquery Datepicker calendar problem with page scrolling
    Jquery Datepicker calendar problem with page scrolling

  • HTTP-400 Too many arguments passed - Upper Limit is 4000

    Hi,
    I have encountered this problem with Apex 3.0.1 on Oracle 10g and unfortunately I am not able to increase the PlsqlMaxParameters value of 4000 due to business rules. With regards to this and workarounds, I have the following queries:
    1) Can someone suggest possible workarounds for this problem - I am basically presenting the user with a checkbox response and sometimes this may involve over 400 records sometimes - alot I know but users would like to see everything on a single page - no pagination. This is calling the HTTP-400 error - any suggestions for workaround(s) or do I need to rewrite the page with pagination or something else?
    2) Would using APEX_COLLECTIONS assist in breaking down on the number of parameters sent to mod_plsql?
    3) Would increasing the PlsqlMaxParameters to say 10000 cause any performance issues?
    Any other help on this would be much appreciated.
    Thanks.
    Tony.

    Hi,
    It is indeed a valid work around
    http://iadvise.blogspot.com/2008/05/apex-http-400-too-many-arguments-passed.html
    It can have some performance effect.
    But test this for your situation.
    Kind regards,
    Iloon

  • TS3320 "Could not open the page, too many http redirects HELP!!

    When i click on a movie on the itunes app it says it cannot open because of too many http redirects.  How do i fix this?

    Read this whole message before doing anything.
    Back up all data.
    Quit iTunes if it’s running.
    Step 1
    Hold down the option key and select
    Go ▹ Library
    from the Finder menu bar. Move the following items from the Library folder to the Trash (either may not exist):
    Caches/com.apple.iTunes
    Caches/QCCompositionRepository-com.apple.iTunes.cache
    Saved Application State/com.apple.iTunes.savedState
    Leave the Library folder open. Try iTunes again. If it works now, stop here. Close the Library folder.
    Step 2
    If you still have problems, quit iTunes again. Go back to the Finder and move the following item from the open Library folder to the Desktop:
    iTunes
    Note: you are not moving the iTunes application. You’re moving a folder named “iTunes.”
    Test. If iTunes now works, delete the iTunes folder on the Desktop. Otherwise, quit iTunes again. Put back the folder you moved, overwriting the newer one that may have been created in its place, and continue.
    Step 3
    In the Preferences subfolder, there may be several files having names that begin with either of the following strings:
    com.apple.iTunes
    com.apple.mobile.iTunes
    Move them all to the Desktop.
    Also in the Preferences folder, there's a subfolder named "ByHost". Open it and do the same thing.
    Test again. This time iTunes should perform normally, but your settings will be lost. You may be able to put back some of the files you moved to the Desktop in this step. Relaunch and test after each one. Eventually you should find one or more that causes iTunes to malfunction. Delete those files and recreate whatever settings they contained.
    If the issue is still not resolved, quit iTunes again and put all the items you moved to the Desktop back where they were. You don’t need to replace the items you moved to the Trash. Stop here and post again.
    If you later decide that you don’t like the results of steps 2 and 3, you can undo them completely by quitting iTunes and restoring the items you deleted in those steps from your backup.

  • HT201412 Have a problem with iPad2, apple logo appears but iPad won't boot up, then logo disappears & iPad dies - probably caused due to insufficient hard disk space (too many apps) - any help greatly appreciated

    I have a problem with iPad2, apple logo appears but iPad won't boot up, then logo disappears & iPad dies - probably caused due to insufficient hard disk space (foolishly loaded up too many apps) - any help/advice greatly appreciated

    What to Do When Your iPad Won't Turn On
    http://ipad.about.com/od/iPad_Troubleshooting/ss/What-To-Do-When-Your-Ipad-Wo-No t-Turn-On.htm
    iOS: Not responding or does not turn on
    http://support.apple.com/kb/TS3281
    iPad Frozen? How to Force Quit an App, Reset or Restart Your iPad
    http://ipadacademy.com/2010/11/ipad-frozen-how-to-force-quit-an-app-reset-or-res tart-your-ipad
    iPad: Basic troubleshooting
    http://support.apple.com/kb/TS3274
    Update and restore alert messages on iPhone, iPad, and iPod touch
    http://www.buybuyla.com/tech/view/012953a0d412000e.shtml
    iOS: Resolving update and restore alert messages
    http://support.apple.com/kb/TS1275
    iPad: Unable to update or restore
    http://support.apple.com/kb/ht4097
     Cheers, Tom

Maybe you are looking for

  • How can I add a Time Capsule 3TB to a network with an older Time Capsule 2TB?

    I have a 2010 Macbook Pro with 500 GB HD and a 2013 Macbook Pro with 1TB HD. I am using Mavericks and will migrate to OS X Yosemite when it becomes available. I tried backing both up with my older Time Capsule with 2 TB of space but it isn't enough.

  • Should I use a MAC address to validate users for my program?

    I'm writing a graphical console program and I was planning on using a few methods for security. One being to block a user from logging in again if they don't type the correct username and password within three tries until the root user authenticates

  • Blocking messages from particular address domains in Mail 3.5

    I am aware of the Junk Mail filter feature in Mail 3.5, but sometimes it does not pick up everything I'd like. I am wondering whether there is an option in the Mail program to block certain emails that end in a particular domain address. Is there a w

  • Upgrading T61 NIC -- 4956agn (n-disable​d) -- to 802.11n

    I have a T61 7659-12U.  According to the Lenovo specs and what I see using Windows Device Manager, this -12U version of model 7659 comes with the Intel 4965agn wireless card (n-disabled).  I am therefore only able to use 802.11g wireless connections,

  • Firewire ghost

    I have two external hard drives attached to my Quad G5- a 400 Mb/s FireWire and an 800 Mb/s FireWire (both La Cie). The problem is that the 400 FW drive prevents the 800 Fw drive from mounting, even if the 400 drive is turned off. They are not connec