存档

作者存档

就家里adsl的问题谈谈电信宽带服务

2006年7月27日 没有评论

家里的adsl最近出了个怪事,从昨天开始就忽然无法解析域名,只有少部分ip能ping通并且直接通过ip打开。在试了另外一台电脑,并且跳过路由器直接接adsl猫测试后判断为电信方故障,而非我自己家里电脑网络故障。于是开始拨打电信10000号热线,第一次是宽带业务转人工,在说明是宽带故障后接线员一句话给你转到宽带专线去,就把我一个皮球踢到那里等电话去了,我拿着电话听了1-2分左右音乐提示接线员全忙无法接听就把我电话挂了,心想这电信的热线也真够忙的,于是就看了会以前下载的电影,明天再看看吧。

第二天也就是今天,回家一开电脑发现还是老样子,于是就继续打电信10000号热线,这次我直接选了故障申告的宽带故障,结果还是话务员全忙。那好我就过会再打吧,过了10分钟我打还是全忙,然后从20:30分我一直打到10:30分,根本就没打通过这个所谓的24小时服务热线。

电信啊电信,你叫我怎么说你那。我今天就陪你玩玩,看看到底几点能打通

自己再打电话之余,开始研究了以来(更具我多年经验打客服电话远没自己研究解决来的快速),忽然发现自己获得的ip是58.x.x.x

记得以前应该是222开头的,灵光一闪,根据多年经验总结,打开了我的adsl猫的管理界面,幸亏我留了一手,对比我刚装完adsl抄下来的VPI VCI参数一看果然和以前不一样了,改回纸上抄的数值重启adsl,拨号。好了。。。。

另一头的电话还在继续“对不起话务员全忙,不能为您服务。。。”

kao去他妈的10000号,明天我投诉的就是你这个服务热线

骂10000边电信然后睡觉88

分类: 只谈心情 标签:

[转载]中国移动推出IM软件飞信正式对抗QQ

2006年6月17日 没有评论

UC没打倒QQ,POPO也没有,MSN和雅虎通也是力不从心。
中国IM从来是都你方唱罢我登场,唯独QQ一枝独秀。。

现在,中国移动也加入进来,依托强大的垄断优势,誓把QQ拉下马。。


关于大家对此软件的实力的怀疑,这一点是可以理解的。
毕竟QQ大家用起来相当有感情,尽管腾讯的确很黑。。
但是有没有人想到这样一个问题,当初是什么救了岌岌可危的腾讯,
是短信业的发展,是SP服务。。
如果中国移动想垄断IM,他很简单的,拒绝各类IM的SP服务。
比如腾讯的移动QQ,短信超人啥的。。那QQ还有什么能耐呢
下面的通告,就是中移动对各类IM软件的最后通牒。
相关报道请参阅
www.donews.com ,中国IM界即将翻天覆地也未可知。

中国移动关于停止与各类IM的SP服务合作的通告,具体内容如下:

    为便于给客户提供统一的聊天服务,中国移动已推出了综合IM(即时通信)聊天业务,有限公司经研究决定,对于移动梦网聊天类业务采取如下管理办法(数通[2006]167号):

    1、从6月1日起各梦网业务线(短信、彩信、WAP、Java和IVR)中(含全网和本地业务),不再新增聊天社区类梦网业务。

    2、对于现存的聊天社区类梦网业务,不再与此类业务开展任何形式的营销合作,尤其是门户位置推荐、STK卡业务内置和终端内置等营销合作。

    3、对于在互联网开展各类IM服务的SP的现有相关聊天类梦网业务(如腾讯公司QQ业务),为平稳过渡,这类业务在时间上允许开展到今年年底,相关SP的合作协议续签到今年12月31日为止,并且在合作协议中添加关于明确不再与此类业务进行营销合作的条款。


    与此同时,中国移动的IM梦想也大白天下—-飞信(注册完成前叫飞讯)正式推出了。下载地址看:

http://mo.bokee.com/special/feixun/reg.php


    关于此链接为什么不是中国移动的官方地址,因为软件本身就是委托139.com来完成编写的。
飞讯软件的前身是
http://www.m161.com.cn/default.aspx 的FEMOO,飞讯是FEMOO的升级版本。
处于某种商业推广上的考虑,暂时放置在BOKEE站上做的注册,关于此软件和此消息的准确性。
请参阅
http://donews.com/Content/200606 … 2d5f65070354b2.shtm
DONEWS的相关报道,回帖中有人提到的骗人等问题,我想时间会进一步来提高你们的鉴别能力的。

    这个软件据说是由139.com负责开发的。139.com此前与华友世纪、掌上灵通,都是给中移动做系统集成服务,不过139.com实力雄厚,把另两家都逼的改行去做SP,碰巧都发了大财,倒是自己变成了飘摇的孤舟。幸亏借着数据部新战略,攀上了一次机会,也许能再造就出一个卓望信息的地位也说不定。

    说实话,飞信的确很不错,第一个版本虽然有些BUG,比如星座和农历属相总是错误啊,比如显示名字都是叫 飞讯 而且不主动提示你更改啊(甚至你都找不到在哪里改),但是做电信的突然来玩互联网,经验是可以积累的,所以完全可以原谅。作为IM,飞信该有的功能都有了,其他IM不该有,或者有不得的功能也有了。

    比如与手机的关联。飞信从注册起就成为一个中移动号码的配套附属,因此可以便利的在电脑会话与手机会话以及电脑-手机会话中随意转换,这个IM就是属于你的无限即时通信工具,完全没有地域限制。而且,这意味着使用飞信IM的人信用度有保障—-根据新法规,手机用户都已经备案过自己的身份证了。这就意味着:

第一,   以前使用MSN的商务用户可能会大面积转向飞信。相对于邮件验证,显然手机更可靠,更商务;以前使用移动QQ的个人用户可能会大面积转向飞信,因为飞信根本不存在对方是否绑手机了的问题,且操作极便利;以前使用Skype的个人用户可能会大面积转向飞信,因为飞信同样支持语音以及电话会议(8人),而且是移动电话会议哦!……

第二,      飞信会进一步发展成为电子商务的工具。通过淘宝旺旺之类的IM在商户之间进行沟通,只完成了通话的过程,没有解决电子商务的关键一链“信用”问题。如果电子商务网站开始把自己的联系方式不再使用QQ、E-MAIL,而是改用飞信,相信买家和卖家之间会更加信任,使业务进行的更容易。

第三,      你的生活,从此飞信了。准备接受这个现实吧,相信移动梦网很快就有飞信的免登陆客户界面了,和你的SIM卡绑定。目前电脑版本已经有了备份通讯录,相信很快就有了手机版本,你将爱不释手的下载使用。

    这一切,缘于中移动完成了互联网和无线互联网的结合,很创新!

    这个创新将取得的成就,中移动很有信心。飞信的IM编号是从4XXXXXXXXX开始的,就是从4亿号开始,即已经默认他的4.5亿用户都会安装上,并且上延到10亿用户。别担心号码长度不够用,中移动同时提供了两种号码鉴别方式,你按照手机号码也可以登陆使用,那就是等于已经预留了无限的发展空间了。

    这么好的一个创新商业模式,这么巨大的一个发展空间,即便以最市场化的方式推出,相信也会很快横扫中国IM市场。但遗憾的是,中移动却采用这么极端的一种方式:用垄断地位直接扑杀对手。

    从此,飞信这个好产品,注定要戴一顶丑恶的帽子。

大家注册后和朋友们就可以免费发短信,只是飞信的位数比较长。可能功能暂时没QQ多。
但是,一个强大的竞争对手无可避免的出现了。。大家拭目以待吧。

分类: 只谈软件 标签:

[转载]TOMCAT 5设置数据连接池总结

2006年6月10日 没有评论

原文地址

TOMCAT 5设置数据连接池总结

 TOMCAT 5,要设置一个数据连接池,以MYSQL为例子(MS SQL SERVER 2000)也差不多,如何设置呢?查了下网上的资料,很多种说法,因此归纳了下,大概有两类做法是可以的。
我用的是TOMCAT 5.0.28,搭配MYSQL

做法1:
  修改conf目录下的server.xml,在<HOST></HOST>之间加入
<Context path=”/testmysql” docBase=”d:tomcat5webappstestmysql” debug=”0″ crosscontext=”true” reloadable=”true”>
  <Resource name=”jdbc/TestDB” auth=”Container”
            type=”javax.sql.DataSource”/>
  <ResourceParams name=”jdbc/TestDB”>
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>root</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>123456</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/testmysql?useUnicode=true&amp;characterEncoding=gb2312</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>5</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
  </ResourceParams>
</Context>
  其中,testmysql是为了测试而放在weapps下的一个目录。
Tomcat连接池中,部分参数说明如下:

  maxActive=”100″  <!–最大活跃连接数,这里取值为100,表示同时最多有100个数据库连接。设为0表示无限制。–>

  maxIdle=”30″ <!–最大的空闲连接数,这里取值为30,表示即使没有数据库连接时依然可以保持30个空闲的连接,而不被清除,随时处于待命状态。设为0表示无限制。–>

  maxWait=”10000″ <!–最大建立连接等待时间。如果超过此时间将接到异常。这里设置为10000,表示10秒后超时。设为-1表示无限制,直到超时为止。–>

jdbc:mysql://localhost/jcc <!–数据库连接字符串,同jdbc:mysql://localhost:3306/jcc?autoReconnect=true–>

PS:如果最大数据库活跃连接数过大,可想而知,内存占用量是非常惊人的!如果空闲连接数过大,则资源利用率低,连接池长期未释放,可导致连接池结点异常。所以选好maxActive和maxIdle是连接池性能的关键因素,当然这取决于服务器环境。

     然后再在web.xml下如下配置
<resource-ref>
  <res-ref-name>TestDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
注意,这里的TestDB(名称)要和你在server.xml里设置的<ResourceParams name=”jdbc/TestDB”>
名称一样。
  设置的测试程序如下:
<%
try{
 Context initContext = new InitialContext();
 Context envContext  = (Context)initContext.lookup(“java:comp/env”);
 DataSource ds = (DataSource)envContext.lookup(“jdbc/TestDB”);
 Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery(“SELECT * FROM testmysql”);
   out.println(“User-list”+”<br>”);
     while(rs.next())
     { 
       out.print(rs.getInt(1)+” “);  
     out.print(rs.getString(2)+”<br>”);
      }
        rs.close();
      stmt.close(); 
      conn.close();}
 catch(Exception e)
 {
  out.print(e);
  }
%>

 而在TOMCAT 5以上,也可以用另外的方法来配置
Tomcat5和Tomcat4在配置新的Web应用上有一些区别,在Tomcat4中如果要配置一个新的Web应用需要修改server.xml文件,在Tomcat5中只需要重新写一个配置文件就可以了,只有将这个文件放在相应的目录中,
   比如,我们可以在D:tomcat5confCatalinalocalhost目录下,新建立一个XML文件如下
  <?xml version=”1.0″ encoding=”UTF-8″?>
<Context path=”/tesymysql” docBase=”d:tomcat5webappstestmysql”
        debug=”5″ reloadable=”true” crossContext=”true”>

  <Resource name=”TestDB”
               auth=”Container”
               type=”javax.sql.DataSource”/>
  <ResourceParams name=”TestDB”>
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <!– Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         –>
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>
    <!– Maximum number of idle dB connections to retain in pool.
         Set to 0 for no limit.
         –>
    <parameter>
      <name>maxIdle</name>
      <value>30</value>
    </parameter>
    <!– Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         –>
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
    <!– MySQL dB username and password for dB connections  –>
    <parameter>
     <name>username</name>
     <value>root</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>123456</value>
    </parameter>
    <!– Class name for the old mm.mysql JDBC driver – uncomment this entry and comment next
         if you want to use this driver – we recommend using Connector/J though
    <parameter>
       <name>driverClassName</name>
       <value>org.gjt.mm.mysql.Driver</value>
    </parameter>
     –>
   
    <!– Class name for the official MySQL Connector/J driver –>
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
   
    <!– The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         –>
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/testmysql?autoReconnect=true</value>
    </parameter>
  </ResourceParams>
</Context>
  而WEB.XML文件的修改同上,这样也可以的。
而在TOMCAT 5。5中,甚至可以这样修改,不用改其他
   在<%TOMCAT_HOME%>confserver.xml的<Host>…</Host>之间加入以下代码:

<Context path=”" docBase=”D:/tomcat5webappstestmysql”
        debug=”5″ reloadable=”true” crossContext=”true”>
  <Resource name=”jdbc/TestDB” auth=”Container” type=”javax.sql.DataSource”
               maxActive=”100″ maxIdle=”30″ maxWait=”10000″
               username=”jcc” password=”jsp.com.cn” driverClassName=”com.mysql.jdbc.Driver”
               url=”jdbc:mysql://localhost:3306/testmysql”/>
</Context>

2 注意的问题
  一开始,我下载的mysql的驱动包,解压出来,mysql-connector-java-3.1.10-bin.jar放在tomcatcommonlib目录下就可以了,没必要在自己的应用目录下,再建lib目录后再放该JAR文件。注意,mysql-connector-java-3.1.10-bin-g.jar文件没必要放在commonlib目录下的,我放了反而会出错,不知道为什么。
   SQL SERVER 2000的写法差不多,不同在于:
  <!– Class name for mssqlserver JDBC driver –>
   <parameter>
      <name>driverClassName</name>
      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
   </parameter>

   <!– The JDBC connection url for connecting to your mssqlserver dB.–>
   <parameter>
     <name>url</name>
     <value>jdbc:microsoft:sqlserver://localhost:1433;databasename=Northwind</value>
   </parameter>
 </ResourceParams>

分类: 只谈技术 标签:

[转载]Tomcat+SQL Server2000连接池配置

2006年6月10日 没有评论

终于解决了困扰多天的连接池的问题,写下这编文章与大家一起分享。我是在tomcat5.5.9下配置的,tomcat5.5.X和以前的版本有一些差别,所以配置上也有差别。我就说一下在tomcat5.5.9配置的基本步骤:(确定你以安装好tomcat5.5.9、sql2000)
  
  1、把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和%TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下(我的web文件夹名字叫quickstart)
  

  这一步大家都知道,不然tomcat无法与数据库连接。
  
  2、修改%TOMCAT_HOME%/conf/server.xml文件,在 <GlobalNamingResources></GlobalNamingResources>之间
  

  添加以下内容:
  <Resource
  name=”jdbc/quickstart”
  type=”javax.sql.DataSource”
  password=”123456″
  driverClassName=”com.microsoft.jdbc.sqlserver.SQLServerDriver”
  maxIdle=”2″
  maxWait=”5000″
  username=”sa”
  url=”jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart”   maxActive=”4″/>
  
  以上内容根据大家的具体情况进行相应修改,比如:把name=”jdbc/quickstart”中的quickstart改成和你web文件夹名称一样,把password=”123456″中的“123456”改成你数据库的密码。
  
  3、在%TOMCAT_HOME%/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件(我的是quickstart.xml)
  

  这一步非常重要,如果没有这步就会出错,会出现org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ” for connect URL ‘null’
  
  这样的错误,在文件中加入第2步的内容,如下:
  
  <?xml version=”1.0″ encoding=”UTF-8″?><Context>
  <Resource
  name=”jdbc/quickstart”
  type=”javax.sql.DataSource”
  password=”123456″
  driverClassName=”com.microsoft.jdbc.sqlserver.SQLServerDriver”
  maxIdle=”2″
  maxWait=”5000″
  username=”sa”
  url=”jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart”
  maxActive=”4″/> </Context>
  
  根据个人具体情况进行相应修改。
  
  4、修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在<web-app></web-app>之间添加以下内容
  

  <resource-ref>
  <description>sqlserverDB Connection</description>
  <res-ref-name>jdbc/quickstart</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
  
  把<res-ref-name>jdbc/quickstart</res-ref-name>中的quickstart改成你的web文件夹名称。
  
  5、测试,在quickstart下新建一个index.jsp文件
  

  <%@ page contentType=”text/html; charset=gb2312″ %><%@ page import=”javax.naming.*” %><%@ page import=”javax.sql.*” %><%@ page import=”java.sql.*” %><html><head><title>JDBC Test</title></head><body><%
  Connection conn=null;
  Statement stmt=null;
  ResultSet rs=null;
  ResultSetMetaData md=null;
  try
  {
  Context initCtx=new InitialContext();
  DataSource ds=(DataSource)initCtx.lookup(“java:comp/env/jdbc/quickstart”);
  if(ds!=null)
  {
  out.println(“已经获得DataSource”);
  out.println(ds.toString());
  conn=ds.getConnection();
  stmt=conn.createStatement();
  out.println(“aa”);
  rs=stmt.executeQuery(“select * from cat”);
  md=rs.getMetaData();
  out.println(“<table border=1>”);
  out.println(“<tr>”);
  for(int i=0;i<md.getColumnCount();i++)
  {
  out.println(“<td>”+md.getColumnName(i+1)+”</td>”);
  }
  while(rs.next())
  {
  out.println(“<tr>”);
  out.println(“<td>”+rs.getString(1)+”</td>”);
  out.println(“<td>”+rs.getString(2)+”</td>”);
  out.println(“<td>”+rs.getString(3)+”</td>”);
  out.println(“<td>”+rs.getString(4)+”</td>”);
  out.println(“</tr>”);
  }
  out.println(“</table>”);
  conn.close();
  }
  }
  catch(Exception e)
  {
  out.println(e.toString());
  System.out.println(e.toString());
  }%></body></html>
  
  运行tomcat服务器,在浏览器中输入http://localhost:8080/quickstart/index.jsp看看成功了没有。

分类: 只谈技术 标签: ,

[转载]Tomcat下配置MySQL数据库连接池

2006年6月10日 没有评论

1.在$CATALINA_HOME/conf/server.xml中添加配置信息,声明连接池的具体信息,添加内容如下:
  
  <!–声明连接池–>
  
  <Resource name=”jdbc/mysql” auth=”Container” type=”javax.sql.DataSource”/>
  
  <!– 对连接池的参数进行设置 –>
  
  <ResourceParams name=”jdbc/mysql”>
  
  <parameter>
  
  <name>factory</name>
  
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxWait</name>
  
  <value>5000</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxActive</name>
  
  <value>20</value>
  
  </parameter>
  
  <parameter>
  
  <name>username</name>
  
  <value>shopadm</value>
  
  </parameter>
  
  <parameter>
  
  <name>password</name>
  
  <value>123</value>
  
  </parameter>
  
  <parameter>
  
  <name>url</name>
  
  <value>jdbc:mysql://localhost/shopdb?useUnicode=true&charact-erEncoding=gb2312</value>
  
  </parameter>
  
  <parameter>
  
  <name>driverClassName</name>
  
  <value>com.mysql.jdbc.Driver</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxIdle</name>
  
  <value>10</value>
  
  </parameter>
  
  </ResourceParams>
  
  2. 在$CATALINA_HOME/conf/web.xml的</web-app>前添加如下信息:
  
  <resource-ref>
  
  <description>DB Connection</description>
  
  <res-ref-name>jdbc/mysql</res-ref-name>
  
  <res-type>javax.sql.DataSource</res-type>
  
  <res-auth>Container</res-auth>
  
  </resource-ref>
  
  其中<res-ref-name>中的参数名必须和server.xml中声明的连接名一样。
  
  3. 在$CATALINA_HOME/conf/catalina/localhost目录下找到需要进行数据库连接的当前程序的配置信息,比如这里是shopping.xml,在这个文件中添加如下信息:
  
  <Context …>
  
  …
  
  <ResourceLink name=”jdbc/mysql” global=”jdbc/mysql” type=”javax.sql.DataSource”/>
  
  …
  
  </Context>
  
  大功告成!
  
  在此基础上,参考Tomcat官方网站的用户手册,摸索出另外一种配置连接池的方法,这个方法不需要对server.xml进行修改,只要对需要使用到连接池的程序的配置文档进行修改就可以了。方法如下:
  
  1.$CATALINA_HOME/conf/catalina/localhost目录下找到需要数据库连接池的程序的配置文档,此处是shopping.xml。在<Context> </Context>之间添加如下信息,声明一个数据库连接池:
  
  <Resource name=”jdbc/mysql” auth=”Container” type=”javax.sql.DataSource”/>
  
  <ResourceParams name=”jdbc/mysql”>
  
  <parameter>
  
  <name>factory</name>
  
  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxWait</name>
  
  <value>5000</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxActive</name>
  
  <value>20</value>
  
  </parameter>
  
  <parameter>
  
  <name>password</name>
  
  <value>123</value>
  
  </parameter>
  
  <parameter>
  
  <name>url</name>
  
  <value>jdbc:mysql://localhost/shopdb?useUnicode=true&characterEncoding=gb2312</value>
  
  </parameter>
  
  <parameter>
  
  <name>driverClassName</name>
  
  <value>com.mysql.jdbc.Driver</value>
  
  </parameter>
  
  <parameter>
  
  <name>maxIdle</name>
  
  <value>10</value>
  
  </parameter>
  
  <parameter>
  
  <name>username</name>
  
  <value>shopadm</value>
  
  </parameter>
  
  </ResourceParams>
  
  这里的参数和上一种方法中添加到server.xml里的信息几乎是完全一样的。
  
  2.在对应程序的WEB-INF下建立一个web.xml文档,添加如下信息:
  
  <?xml version=”1.0″ encoding=”ISO-8859-1″?>
  
  <web-app xmlns=”http://java.sun.com/xml/ns/j2ee”
  
  xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
  
  xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee
  
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”
  
  version=”2.4″>
  
  <resource-ref>
  
  <description>DB Connection</description>
  
  <res-ref-name>jdbc/mysql</res-ref-name>
  
  <res-type>javax.sql.DataSource</res-type>
  
  <res-auth>Container</res-auth>
  
  </resource-ref>
  
  </web-app>

分类: 只谈技术 标签: ,

[转载]LAMP 架构服务器性能优化建议

2006年6月8日 没有评论

文摘出处:http://www.paulgao.com.cn/index.php?catid=5&blogid=1

LAMP 架构服务器性能优化建议
(03/11/2004,R1版)

  出处:http://www.paulgao.com.cn,欢迎转载。
  关键词:LINUX、APACHE、PHP、MYSQL、服务器、性能优化、配置优化。

  维护“手机之家”(http://www.imobile.com.cn)的服务器有快两年了,也有些经验心得,写在这里给大家分享。

  服务器配置如下:redhat linux 9.0、apache 1.3.29、php 4.3.4、mysql 3.23.58,以下建议均在以上平台上跑的很好,当然也跟你的应用有关系,具体实施要根据实际效果来进行。

  1、众所周知的方法就是使用 Zend Optimizer(简称 ZO,最新版本为 2.5.1) 或者 Zend Performance Suite(简称 ZPS,其中包含 ZO,最新版本为 3.6.0)对 PHP 进行加速。相关软件可到张微波的主页来下载哦,地址为:http://www.5ilinux.com/blog/archives/000093.html

  2、apache配置优化(httpd.conf)
1)修改“Timeout”的值为 30-60,如果你得程序没有执行时间需要很长的话,可以修改到 10-15;
2)修改“KeepAlive”的值为“Off”,这个很有效果,也很有争议,我自己的看法是很有效果,而且并没有影响速度,大家可以自行试验;
3)修改“MaxRequestsPerChild”的值为“2048”,这个还在试验中,一是因为怕有内存泄漏,二是因为 apache 进程会因为随着服务时间的延长,会变得越来越胖(我这里的实际情况是某些 apache 进程会狂吃内存到18MB,晕啊:),不过这设置有没有效果,还在试验中;
4)在不使用 .htaccess 的情况下,将其“”部分设置为“None”方式,如果你使用 PHPMYADMIN 进行管理的话,可以使用 PHPMYADMIN 的 COOKIE 权限控制方式。

  3、卸载不必要的模块,不管是静态编译还是 DSO 模式,以便节省内存占用。具体模块可以参照 apache 的手册,这里就不多说了。PHP 也是同样,我基本上已经把不用的模块都卸载了:)

  4、使用 mod_gzip 进行加速,很简单,就不多说了。

  5、如果你的服务器还是负载很高的话,更极端的方式就是在 httpd.conf 里面将日志停掉了,不过一般要保留 errorlog 才好,以便排错,而且要记得,不是把“CustomLog”注释掉就行了,而要使用“CustomLog /dev/null common”这样的方式才好。

  6、如果你的 PHP 程序使用 Session 对话的话,可以在 php.ini 里面将“session.save_path”设置为“session.save_path = /dev/shm”,因为 /dev/shm 是 linux 系统独有的 TMPFS 文件系统,是以内存为主要存储方式的文件系统,比 RAMDISK 要好,因为可以使用 DISKSWAP 作为补充,而且是系统自带,不需要另行配置,想想吧,从磁盘IO操作到内存操作,速度会快多少?:)你也可以把你所需要的临时文件都写在 /dev/shm 下,只是别忘了,重启就没有啦,我是只存放目标文件的,呵呵。额外的说明资料请看“使用虚拟内存(virtual memory,VM)文件系统和绑定安装”(http://www-900.ibm.com/developerWorks/cn/linux/filesystem/l-fs3/index.shtml)。

  7、MYSQL 的优化(/etc/my.cnf)
1)确认在“[mysqld]”部分加入了“skip-innodb”和“skip-bdb”参数;
2)确认在“[mysqld]”部分加入了“skip-name-resolve”和“skip-locking”参数;
3)如果不需要的话,可以将二进制日志(binlog)停掉,方法是将“log-bin”注释掉;
4)在内存允许的情况下,对一些参数进行重新配置,目标在于将大部分操作集中于内存中,尽量不进行磁盘操作,对于我的 MYSQL 服务器我是如下修改的,基于 2G 内存情况:

[mysqld]
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = sort_buffer=32M
set-variable = record_buffer=32M
set-variable = max_connections=512
set-variable = wait_timeout=120
set-variable = interactive_timeout=120
set-variable = max_connect_errors=30000
set-variable = long_query_time=1
set-variable = max_heap_table_size=256M
set-variable = tmp_table_size=128M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=128M

你可以根据“show status”命令返回的状态进行微调。我主要注意以下变量的数值,越小越好,最好为零:)
Created_tmp_disk_tables
Created_tmp_tables
Created_tmp_files
Slow_queries

  8、在启动脚本中使用“–log-slow-queries=/home/logs/mysql_slow.log”参数,以便进行 SQL 语句的优化工作,这个其实是很很重要的工作。记得一定要在 my.cnf 中设置“set-variable = long_query_time=1”才行。

  9、另外可以使用 4.0.xx 版本的 MYSQL,4.0.xx 版本除了一些性能提升以外,还有 QueryCache 方法,就是在 SQL 语句查询结果没有变动之前,将其结果进行缓存,下次再进行同样的 SQL 语句查询就可以直接反回结果,当然也是以牺牲内存为前提:)

  10、额外的,对于 LINUX EXT3 文件系统还有一个小技巧可用,就是在修改 /etc/fstab 中的参数,比如“/dev/sdb2 /home ext3 defaults 1 2”改为“/dev/sdb2 /home ext3 noatime 1 2”,“noatime”的意思就是不修改 accesstime,对于磁盘文件读写频繁的服务器也应该可以降低一些效果。不过最好不要远程操作,不然因为修改失误,服务器不能启动了,可别怪我:)

  好了,基本上我用过的方法已经说过一遍了,有些方法是取自于一些很好的文章,由于未作保留,所以无法写出出处,只能泛泛的表示感谢了。其中有些方法也适用于 Windows 平台,大家可以根据自己的服务器、应用情况去进行应用,大家也可一说说自己的办法,比如改用 ZEUS 来做 webserver,我也在找更多的办法来提升服务器性能,比如基于 LINUX KERNEL v2.4 以上内核的一些性能优化方法,从 network 到 swap(因为内核升级,所以一些老版本内核的方法已经不能再使用了:)。我也会进一步更新这篇文章,让大家能够更好的进行服务器的性能提升工作~

  另外欢迎来访问国内数一数二的手机网站,手机之家,地址见下,呵呵~

高春辉
mailto:paulgao@yeah.net
手机之家网站(http://www.imobile.com.cn)

分类: 只谈技术 标签: , , ,

[转载]jsp中文问题的解决

2006年6月7日 没有评论

一、JSP页面显示乱码二、表单提交中文时出现乱码三、数据库连接乱码
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。

一、JSP页面显示乱码
下面的显示页面(display.jsp)就出现乱码:
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
</head>

<body>
<%
out.print(“JSP的中文处理”);
%>
</body>
</html>
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在 JSP页面中指定编码方式(gb2312),即在页面的第一行加上:<%@ page contentType=”text/html; charset=gb2312″%>,就可以消除乱码了。完整页面如下:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<%@ page language=”java” contentType=”text/html; charset=UTF-8″
    pageEncoding=”UTF-8″%>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>JSP的中文处理</title>
</head>
<%@ page contentType=”text/html; charset=gb2312″%>

</head>

<body>
<%
out.print(“JSP的中文处理”);
%>
</body>
</html>

二、表单提交中文时出现乱码
下面是一个提交页面(submit.jsp),代码如下:
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ >
</head>

<body>
<form name=”form1″ method=”post” action=”process.jsp”>
<div align=”center”>
<input type=”text” name=”name”>
<input type=”submit” name=”Submit” value=”Submit”>
</div>
</form>
</body>
</html>
下面是处理页面(process.jsp)代码:
<%@ page contentType=”text/html; charset=utf-8″ pageEncoding=”utf-8″%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>

<body>
<%=request.getParameter(“name”)%>
</body>
</html>
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:jsp处理请求的编码方式和utf-8不一致。解决办法:通过request.setCharacterEncoding (“utf-8″)对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下:
<%@ page contentType=”text/html; charset=utf-8″% pageEncoding=”utf-8″%>
<%
request.seCharacterEncoding(“utf-8″);
%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
</head>

<body>
<%=request.getParameter(“name”)%>
</body>
</html>

三、数据库连接出现乱码
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。

四、数据库的显示乱码
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:
public class Convert {
/** 把ISO-8859-1码转换成GB2312
*/
public static String ISOtoGB(String iso){
String gb;
try{
if(iso.equals(“”) || iso == null){
return “”;
}
else{
iso = iso.trim();
gb = new String(iso.getBytes(“ISO-8859-1″),”GB2312″);
return gb;
}
}
catch(Exception e){
System.err.print(“编码转换错误:”+e.getMessage());
return “”;
}
}
}
把它编译成class,就可以调用Convert类的静态方法ISOtoGB()来转换编码。

分类: 只谈技术 标签:

[转载]实现网页转换特殊过渡效果

2006年5月28日 没有评论

实现网页转换特殊过渡效果
(作者:techsun  本文选自《5D多媒体》 2002年06月07日 10:46)

当我们点击网页上的链接时,浏览器页面就会转到链接指向的新的页面,我们想在页面转换时加上过渡效果。

打开这个页面的原代码,在<head></head>插入代码:

<meta http-equiv=”Page-Exit” content=”revealTrans(Duration=3,Transition=5)”>

这样这个过渡效果就完成了,很简单吧。现在我们来测试一下效果如何,打开这个页面,然后点击页面上的链接,页面在转到下一个页面的过程中,我们看到页面是从上到下慢慢的转换到第二个页面的。

我们现在再试一个效果,将那段代码换成:

<meta http-equiv=”Page-Exit” content=”revealTrans(Duration=1,Transition=14)”>

我们看到页面是从中间向左右两端展开过渡的,而且速度上快了一点。原因在于Duration和Transition的值不同。

Duration的值为网页动态过渡的时间,单位为秒。

Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:

0 盒状收缩
1 盒状放射
2 圆形收缩
3 圆形放射
4 由下往上
5 由上往下
6 从左至右
7 从右至左
8 垂直百叶窗
9 水平百叶窗
10 水平格状百叶窗
11垂直格状百叶窗
12 随意溶解
13从左右两端向中间展开
14从中间向左右两端展开
15从上下两端向中间展开
16从中间向上下两端展开
17 从右上角向左下角展开
18 从右下角向左上角展开
19 从左上角向右下角展开
20 从左下角向右上角展开
21 水平线状展开
22 垂直线状展开
23 随机产生一种过渡方式

Transition为23时,会随机产生0到22中的一个过渡效果。例如:

<meta http-equiv=”Page-Exit” content=”revealTrans(Duration=2,Transition=23)”>

除了上面两个参数,还有一个http-equiv

http-equiv=”Page-Exit”的意思是指页面离开时产生效果。

它有一种写法,如:

http-equiv=”Page-Enter”则是指页面进入时产生的效果。

好了,现在大家自己测试一下效果吧。

http://www0.ccidnet.com/school/web/2002/06/07/100_6628.html

分类: 只谈技术 标签:

关于最近我们论坛被入侵的事情,这里我也来说说

2006年5月20日 没有评论

先来说说“被黑”和“入侵”2个词的区别。以前啊网站被黑客入侵并且修改了他们的主页通常的做法是把首页改成黑底红字,所以这被黑一次就这样诞生了,被黑就是网站被入侵了并且被黑客修改了网站的公共内容。入侵么顾名思义就是让黑客进来了。说道这你也应该明白我的意图了,其实这次的黑客事件其实是一次入侵事件,而不是被黑事件。所以我这里先给大家扫个盲。

一个网站总有的被入侵或者被黑的一天,我所作的只能尽我所能的避免或者拖延这一天的到来,事件的来龙去脉我这里就不说了,论坛和主页公告都写的很清楚了。这里咱也吹吹牛,相信各位知道这个漏洞的人都知道这个漏洞对动网论坛的杀伤力。可以说是一刀致命,随便找个动网论坛5分钟必能进管理后台,10分钟挂马。为啥这个黑客在东林却什么也做不了呢,这得意于我们技术人员对动网的一番大刀阔斧的改进,记得上次升级结构大变害的我改了3个月才正式升级。既然我们避免不了漏洞的产生(按网上流行语没漏洞怎么能叫动网),那么我们就尽量避免漏洞造成的破坏和影响。这里具体有些什么措施因为涉及机密信息等下次咱东林不用动网了我再说哈。简单的说就是,自动监控+自动报警+加强日志。这次黑客事件更加拓展了我对自动监控理解,所以这方面发展还有很大的空间。

本来这次黑客事件也就这么过去了,可是最后发现他使用的ip当中有一个是无锡的铁通用户(并非各位猜想是个笨蛋连代理都不用)。不报案实在是对不起这个无锡铁通的ip了。所以打印了系统日志,让同事去报案了,我们公安网监破案神速很快就抓到了这位黑客,然后就有了上次的那个有点和事实不怎么符合新闻。

另外12日上午访问论坛提示论坛正在维护是我们技术人员针对本次攻击事件的一次安全维护(目的是为防止今后同类入侵类型的修正,也就是说,就算我不补这个漏洞黑客以后也进不来)这次维护时间很短,所以就批准临时发了公告安排做了。

之所以不发论坛是因为懒的和那些自以为是的人说来说去了

分类: 只谈心情 标签:

我家乐乐出生费用

2006年3月15日 没有评论

购车费用统计:
乐骋 1.4 SE MT 81900 (优惠两千,送1千装潢,直接减了3000)
车辆保险 5300 (4S店的,阳光,2年,含玻璃、车损、第三者综合20万、不计免陪)
购置税  7000
养路费  120 (1个月)
车船使用税 105
牌照  205
牌照架  70
服务费  60
铁道无人看管费 30
装修  1674 (型地胶、2眼倒车雷达、遥控锁+防盗器、地毯)
 4S服务费 300
共计  96764元

其他装饰费用 3-12 东方汽车装潢超市
TYPE-R TR301立体可调式2寸凸面镜 18   (就是贴反光镜看死角的)
TYPE-R 防滑垫   8
TYPE-R TR815负离子空气净化器 108
CR-926 佳露思荷叶盖芳香面纸盒套 47
平安鹿 擦车巾 30*60cm  13
CR-931 佳露思多功能遮阳板套 47
CR-919 佳露思超手感方向盘套 47
CR-915 佳露思芳香护腰垫  78
慧霖 雨刮水   18
TYPE-R TR-181立式指南球  18
共计    402元

停车费用
3-11 5元*2 共 10元

洗车费用
3-12 10元

加油费用
3-7 21升 90元 (加满)
3-14 33升 140元(加满,记程352公里,90%高峰上下班路 10%太湖边练车)

分类: 只谈汽车 标签: