随笔-204  评论-90  文章-8  trackbacks-0
 
        随着春节的结束,新的一年就这样在一身的疲惫中开始了,回想过去的一年,我对软件开发这个行业有所理解,对我技术的成长还算满意,对待遇也算满意,唯一不满意的是我感觉在过去的一年我堕落了。回到租住的屋里从来不看书,也不开电脑,就是看电视,无聊的不行就做个饭,感觉是在吃老本啊!在这新的一年里有很多打算,报个英语班,学习日常用语,在自己的技术方面再有所提高,就好了,奢望不多,但愿都能做好!
posted @ 2007-02-26 10:54 一凡 阅读(307) | 评论 (0)编辑 收藏
方法一:Oracle的死锁非常令人头疼,总结了一些点滴经验作为学习笔记

1.查哪个过程被锁
查V$DB_OBJECT_CACHE视图:

SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER='过程的所属用户' AND LOCKS!='0';

2. 查是哪一个SID,通过SID可知道是哪个SESSION.
查V$ACCESS视图:

SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名';

3. 查出SID和SERIAL#
查V$SESSION视图:

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID'

查V$PROCESS视图:

SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';

4. 杀进程
(1).先杀ORACLE进程:

ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';

(2).再杀操作系统进程:

KILL -9 刚才查出的SPID

ORAKILL 刚才查出的SID 刚才查出的SPID
方法二:
经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)
1)查找死锁的进程:
sqlplus "
/as sysdba"
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID; 
2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’;  (其中sid=l.session_id)
3)如果还不能解决,
select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;  
 其中sid用死锁的sid替换。
exit
ps 
-ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。 
posted @ 2007-02-02 14:06 一凡 阅读(5048) | 评论 (0)编辑 收藏

首先对SimpleDateFormat有所了解,以下摘自java-doc中

Letter  Date or Time Component  Presentation  Examples  
G  Era designator  Text  AD  
y  Year  Year  
1996 96   
M  Month in year  Month  July; Jul; 
07   
w  Week in year  Number  
27   
W  Week in month  Number  
2   
D  Day in year  Number  
189   
d  Day in month  Number  
10   
F  Day of week in month  Number  
2   
E  Day in week  Text  Tuesday; Tue  
a  Am
/ pm marker  Text  PM  
H  Hour in day (
0 - 23 )  Number   0   
k  Hour in day (
1 - 24 )  Number   24   
K  Hour in am
/ pm ( 0 - 11 )  Number   0   
h  Hour in am
/ pm ( 1 - 12 )  Number   12   
m  Minute in hour  Number  
30   
s  Second in minute  Number  
55   
S  Millisecond  Number  
978   
z  Time zone  General time zone  Pacific Standard Time; PST; GMT
- 08 : 00   
Z  Time zone  RFC 
822  time zone   - 0800   


对中国人来说,普遍使用的是"yyyy-MM-dd"。

贴出代码:

import  java.util. * ;
import  java.text. * ;
public   class  weekDay 
{
 
public   static   void  main(String[] args) 
 
{
  
//  ----------------------
  
// 实现给定某日期,判断是星期几。
  
// ------------------------
  SimpleDateFormat formatYMD  =   new  SimpleDateFormat( " yyyy-MM-dd " );
  
// formatYMD表示的是yyyy-MM-dd格式
  SimpleDateFormat formatD  =   new  SimpleDateFormat( " E " );
  
// "E"表示"day in week"
  Date d  =   null ;
  
try
  
{
   d 
=  formatYMD.parse( " 2005-11-8 " );
   
// 将String 转换为符合格式的日期
  }

  
catch (Exception e)
  
{
   e.printStackTrace();
  }

  System.out.println(formatD.format(d));
  
// 将日期中的day of week打印
  
  
  
  
// ---------------------------
  
// 测试一下一些想法,跟主题无关
  
// Date在java.util中Date类
  
// 原来java中1月用0代表,弄的测了半天
  
// ---------------------------
  Date testDate  =   new  Date();
  SimpleDateFormat format1 
=   new  SimpleDateFormat( " yyyy-MM-dd " );
  System.out.println(testDate);
  System.out.println(format1.format(testDate));
  System.out.println(testDate.getMonth());
  
  Calendar cal 
=  Calendar.getInstance();
  cal.get(Calendar.MONTH);
  
 }


}



posted @ 2007-01-23 15:15 一凡 阅读(2723) | 评论 (0)编辑 收藏
请注意execute immediate strSql;
create or replace procedure proc_myproc as


strSql 
varchar(200);

begin

for c_colName in(select t.column_name 
                 
from user_tab_cols t 
                 
where t.table_name='TAB_TEST' 
                 
and t.data_type = 'NUMBER'
)
  loop
    dbms_output.put_line(c_colName.Column_Name);
    strSql :
= 'update tab_test set ' || c_colName.Column_Name || ' = 0';
    dbms_output.put_line(strSql);
    
    
execute immediate strSql;  
    
commit;
  
end loop;
  dbms_output.put_line(
'OK..');
end;
posted @ 2007-01-23 11:05 一凡 阅读(614) | 评论 (0)编辑 收藏

在弹出窗口中获得或设置主窗口的任何值:
打开弹出窗口时用:showModalDialog(url, window, feathers)
在弹出窗口中使用 window.dialogArguments 对象(即主窗口传递过来的 window 对象集),即可以获得或者设置主窗口的值。

具体实例:

window.showModalDialog('areaAdd.jsp",window,'dialogWidth:245px;dialogHeight:210px;status:no;help:no;scroll:no;');

其中window参数如果是需要页面间传值就必须要,否则可为空。父子页面之间通讯也需要该参数。主页面的iframe名称为areaIframe,子页面名称为areaAdd,父页面通知子页面刷新用:areasIframe.location.href='areaIframe.jsp'。子页面通知父页面刷新使用:window.dialogArguments.areasIframe.areasReload();其中areasReload()是子页面中的javascript方法

注意 iframe 的属性必须使用前缀 document.all 访问,例如 document.all.iframeId.marginWidth。

posted @ 2007-01-17 15:37 一凡 阅读(1674) | 评论 (1)编辑 收藏
摘自springside论坛

一、
经过N多试验,终于自己把这个问题搞定了。

网上关于C3P0在spring中的配置,几乎没有完全正确的(至少我还没发现)。查了c3p0的文档,又试验过N次。得出如下配置是正确的:


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"   destroy-method="close">
         <property name="driverClass"><value>${jdbc.driverClassName}</value></property>
         <property name="jdbcUrl"><value>${jdbc.url}</value></property>               
         <property name="user"><value>${jdbc.username}</value></property>
         <property name="password"><value>${jdbc.password}</value></property>
         
         <property name="minPoolSize"><value>1</value></property>
         <property name="maxPoolSize"><value>20</value></property>
         <property name="maxIdleTime"><value>1800</value></property>
         <property name="acquireIncrement"><value>2</value></property>
         <property name="maxStatements"><value>0</value></property>
         <property name="initialPoolSize"><value>2</value></property>
         <property name="idleConnectionTestPeriod"><value>1800</value></property>
         <property name="acquireRetryAttempts"><value>30</value></property>
         <property name="breakAfterAcquireFailure"><value>true</value></property>
         <property name="testConnectionOnCheckout"><value>false</value></property>
         
         <!--
            <property name="properties">
          <props>              
              <prop key="c3p0.minPoolSize">1</prop>
              <prop key="c3p0.maxPoolSize">10</prop>
              <prop key="c3p0.maxIdleTime">1800</prop>              
              <prop key="c3p0.acquireIncrement">2</prop>
              <prop key="c3p0.maxStatements">0</prop>
                    <prop key="c3p0.initialPoolSize">2</prop>
              <prop key="c3p0.idleConnectionTestPeriod">1800</prop>
              <prop key="c3p0.acquireRetryAttempts">30</prop>
              <prop key="c3p0.breakAfterAcquireFailure">true</prop>
              <prop key="c3p0.testConnectionOnCheckout">true</prop>
              <prop key="user">root</prop>
              <prop key="password">999999</prop>
              
          </props>
         </property>
        -->      
</bean>

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="mappingDirectoryLocations">
      <list>
   <value>classpath:/com/licaionline/domain/</value>
      </list>
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
     <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.generate_statistics">true</prop>
                <prop key="hibernate.connection.release_mode">auto</prop>                     
                <prop key="hibernate.autoReconnect">true</prop>
                <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
                <!--
    <prop key="hibernate.useUnicode"></prop>
    <prop key="hibernate.characterEncoding"></prop>
    <prop key="hibernate.default-lazy-init"></prop>
                <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>     
    -->
                                
                <!--
                <prop key="hibernate.c3p0.acquire_increment">2</prop>
                <prop key="hibernate.c3p0.idle_test_period">1800</prop>
                <prop key="hibernate.c3p0.timeout">1800</prop>
                <prop key="hibernate.c3p0.max_size">30</prop>
                <prop key="hibernate.c3p0.min_size">2</prop>
                <prop key="hibernate.c3p0.max_statements">50</prop>
    -->         
   </props>
  </property>




注意:注释掉的那些,都是错误的。网上流行的,基本上跟注释掉的那些差不多。配错了,并无异常,还是能正常使用。但是所作的配置不起作用。


二、
起作用的,是datasource里面的这一句:
<property name="maxIdleTime"><value>1800</value></property>

这儿设置成每隔1800秒就扫描一次,检查一下空闲的链接。所以,用户基本上不会得到空闲的链接了。

如果再不放心,
<property name="testConnectionOnCheckout"><value>false</value></property>
这儿设置成true。每次连接之前,都要测一下。但是这样会影响效率。


三、

解决的方法有3种:

增加wait_timeout的时间。
减少Connection pools中connection的lifetime。
测试Connection pools中connection的有效性。
当然最好的办法是同时综合使用上述3种方法,下面就DBCP和C3P0分别做一说明,假设wait_timeout为默认的8小时

DBCP增加以下配置信息:

//set to 'SELECT 1'   
validati   
//set to 'true'   
testWhileIdle = "true"     
//some positive integer   
timeBetweenEvictionRunsMillis = 3600000   
//set to something smaller than 'wait_timeout'   
minEvictableIdleTimeMillis = 18000000   
//if you don't mind a hit for every getConnection(), set to "true"   
test   

C3P0增加以下配置信息:

//set to 'SELECT 1'      
preferredTestQuery = 'SELECT 1'     
//set to something much less than wait_timeout, prevents connections from going stale   
idleConnectionTestPeriod = 18000      
//set to something slightly less than wait_timeout, preventing 'stale' connections from being handed out   
maxIdleTime = 25000     
//if you can take the performance 'hit', set to "true"   
testConnectionOnCheckout = true     

更多的配置信息大家可以查看C3P0文档,Connector/J文档,以及DBCP的文档。

posted @ 2007-01-10 15:33 一凡 阅读(4110) | 评论 (10)编辑 收藏
set  echo  off ;
set  pagesize  50000 ;
spool d:\failuretotal
- 2007 .txt;
select   *   from  tab;
spool 
off ;
posted @ 2007-01-10 13:05 一凡 阅读(220) | 评论 (0)编辑 收藏
        从昨天开始我的工作算是理顺了,各种程序都运行正常了,可以轻松几天,哈哈,真舒服啊!
        刚来这个公司的时候,软件什么都没有,都是重新做,可是忙坏了,经过三个月的努力算是小有成绩了,下一步看能不能把portal的概念应用到我的统计平台中,过两天试试.......... 废话几句,没什么好写的
posted @ 2006-12-29 11:48 一凡 阅读(300) | 评论 (0)编辑 收藏
There are two solutions:
- install GDI+
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/gdiplus/gdiplus.asp
or
-start Eclipse with "eclipse.exe -vmargs -DR31ENHANCE=false". This will not
use any of the new SWT 3.1 functionalities, and so doesnt' require GDI+.

posted @ 2006-12-21 11:59 一凡 阅读(272) | 评论 (0)编辑 收藏
# !/bin/sh
dttime = `date  -- date  " 1 days ago "   " +%Y-%m-%d " `
echo 
" Starting smg_cmpp3 smg_empp2 logs get "
sftp ihandy@
192.168 . 1.225   << EOF
cd 
/ home / ihandy / smgagent / smg_cmpp3 / logs
lcd 
/ home / ihandy / log - smg / cmpp3
get 
" *deliver.$dttime.* "
get 
" *submit.$dttime.* "
get 
" *report.$dttime.* "
cd 
/ home / ihandy / smgagent / smg_empp2 / logs
lcd 
/ home / ihandy / log - smg / empp2
get 
" *deliver.$dttime.* "
get 
" *submit.$dttime.* "
get 
" *report.$dttime.* "
EOF
exit
实现这个功能要在FTP服务器上设置自动登录,才能实现
posted @ 2006-12-07 10:31 一凡 阅读(652) | 评论 (2)编辑 收藏
仅列出标题
共21页: First 上一页 13 14 15 16 17 18 19 20 21 下一页