隨筆-16  評論-84  文章-1  trackbacks-0
            2010年9月13日
          通過存儲過程向數據庫一下子插入了一千萬(10000000)條記錄,結果等了很長時間,PL/SQL都沒有響應,我又瞎折騰了下,結果執行了好幾次,導致數據庫假死了,我只有刪除當前的會話,從網上找到相關的腳本代碼。


          1> 通過此語句查詢正在鎖定的SESSION_ID:

          1SELECT  SESSION_ID   FROM   V$LOCKED_OBJECT,USER_OBJECTS  WHERE   V$LOCKED_OBJECT.OBJECT_ID   =   USER_OBJECTS.OBJECT_ID


          2> 通過第一步查詢到的SESSION_ID查詢SERIAL#

          1SELECT SERIAL# FROM V$SESSION  WHERE SID='12'(此處'12'為上面查詢到的'SESSION_ID')


           3> 根據1,2步查詢到的SESSION_ID和SERIAL#執行

          1ALTER   SYSTEM   KILL   SESSION  '12,154'(12為SESSION_ID的值, 154為SERIAL#的值)

          4> 如果利用上面的命令殺死一個進程后,進程狀態被置為"killed",但是鎖定的資源很長時間沒有被釋放,那么還可以在os一級再殺死相應的進程(線程),首先執行下面的語句獲得當前進程(線程)的標示PID:

          1select spid, osuser, s.program 
          2from v$session s,v$process p
          3where s.paddr=p.addr and s.sid=12 (12是上面的SESSION_ID)

          然后在OS通過任務管理器找到對應的進程,在殺死這個進程(線程)

          posted @ 2010-11-27 14:55 absolute 閱讀(859) | 評論 (0)編輯 收藏
          最近在學習存儲過程,以前在項目中沒有怎么接觸過!

          我通過存儲過程像數據庫中批量添加一千萬(100000000)條記錄,結果PL/SQL很長時間沒有反映,結果不得已通過腳本殺掉當前進程,我重新通過存儲過程插入10000條數據。

          建表腳本:
           1--刪除用戶表
           2DROP TABLE T_PORTAL_USER;
           3
           4--創建用戶表
           5CREATE TABLE T_PORTAL_USER
           6(
           7    id NUMBER PRIMARY KEY-- 用戶表示
           8    username VARCHAR2(24NOT NULL,-- 用戶名
           9    password VARCHAR2(24NOT NULL,-- 密碼
          10    realname VARCHAR2(24NOT NULL,-- 真實姓名
          11    sex VARCHAR2(2DEFAULT '0',-- 性別 "0":Male "1":Female
          12    registerDate TIMESTAMP NOT NULL,-- 注冊日期
          13    state VARCHAR2(2NOT NULL -- 賬號狀態 "0":啟用  "1":注銷
          14)
          15
          16--刪除用戶表序列
          17DROP SEQUENCE SEQ_T_PORTAL_USER;
          18
          19--創建用戶表序列
          20CREATE SEQUENCE SEQ_T_PORTAL_USER
          21START WITH 1
          22INCREMENT BY 1
          23NOMAXVALUE
          24CACHE 20


          -- 批量新增一萬條用戶

           1-- 批量新增一萬條用戶
           2CREATE OR REPLACE PROCEDURE PROC_USER_CREATE_BAT
           3AS
           4    startTime VARCHAR2(32);--開始時間
           5    endTime VARCHAR2(32);--結束時間
           6BEGIN
           7  SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff'INTO startTime FROM DUAL;
           8  DBMS_OUTPUT.PUT_LINE('Start Time: '||startTime);
           9  FOR i in 1..10000 LOOP
          10     INSERT INTO T_PORTAL_USER VALUES(SEQ_T_PORTAL_USER.NEXTVAL,'owen'||i,'123456','gekunjin'||i,'0',sysdate,'0');
          11  END LOOP;
          12  SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss:ff'INTO endTime FROM DUAL;
          13  DBMS_OUTPUT.PUT_LINE('End Time: '||endTime);
          14END PROC_USER_CREATE_BAT;
          posted @ 2010-11-27 14:41 absolute 閱讀(3697) | 評論 (1)編輯 收藏
               摘要: 在項目中使用Apache開源的Services Framework CXF來發布WebService,CXF能夠很簡潔與Spring Framework 集成在一起,在發布WebService的過程中,發布的接口的入參有些類型支持不是很好,比如Timestamp和Map。這個時候我們就需要編寫一些適配來實行類型轉換。 Timestamp:  1/** *//** &n...  閱讀全文
          posted @ 2010-11-27 14:28 absolute 閱讀(3422) | 評論 (1)編輯 收藏

          Web應用初始化Spring容器策略

          以下軟件測試環境為Spring,Struts1

          1、通過struts1提供的插件機制,采用Spring提供的ContextLoaderPlugIn

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

          <struts-config>
           <global-exceptions />
           <global-forwards />
           <message-resources parameter="com.portal.ApplicationResources" />
           <!--  通過S1提供的插件機制來初始化Spring容器,加載Spring配置文件
           <plug-in
            className="org.springframework.web.struts.ContextLoaderPlugIn">
            <!--
             1、ContextLoaderPlugIn默認加載配置文件命名規則是actionServlet-servlet.xml,其中actionServlet
             是配置org.apache.struts.action.ActionServlet時指定的servlet名稱
             
             2、通過配置contextConfigLocation屬性來指點Spring配置文件的位置,多個配置文件可以使用 逗號","、分號";"、空格" "
            -->
            <set-property property="contextConfigLocation"
             value="/WEB-INF/conf/spring-application.xml,/WEB-INF/conf/**/spring*.xml" />
           </plug-in> 
            -->
          </struts-config>


          2、采用Spring提供的ContextLoaderListener來初始化(應用服務器需要支持Listener,Servlet2.3版本及以上)
           <context-param>
             <description>通過配置contextConfigLocation屬性來指點Spring配置文件的位置,多個配置文件可以使用 逗號","、分號";"、空格" "</description>
             <param-name>contextConfigLocation</param-name>
             <param-value>/WEB-INF/conf/spring-application.xml /WEB-INF/conf/**/spring*.xml</param-value>
            </context-param>
           
            <listener>
             <description>通過ContextLocaderListener來初始化Spring容器,加載Spring配置文件</description>
             <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>

          3、采用load-on-startup Servlet 來初始化Spring容器
            <servlet>
             <description>
              通過load-on-startup Servlet來初始化Spring容器
              該如何Servlet 用于提供"后臺"服務,作為容器管理應用中的其他bean,不需要響應客戶請求,因此無須配置servlet-mapping
             </description>
             <servlet-name>applicationContext</servlet-name>
             <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
             <load-on-startup>0</load-on-startup>
            </servlet>

          posted @ 2010-09-13 18:10 absolute 閱讀(2268) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 霍邱县| 崇明县| 平遥县| 霍林郭勒市| 呼玛县| 都兰县| 迭部县| 贵德县| 思南县| 措美县| 永善县| 余干县| 勃利县| 太保市| 盐津县| 金寨县| 沙雅县| 界首市| 海原县| 榆树市| 合作市| 东台市| 遵义市| 民勤县| 江永县| 彝良县| 连南| 读书| 潞城市| 长岭县| 崇明县| 芦溪县| 周宁县| 凤凰县| 峨眉山市| 嘉鱼县| 雅安市| 云梦县| 乌拉特前旗| 万年县| 北辰区|