月归档:四月 2012

Thread stack overrun: 解决办法

系统能不能连接数据库,关键要看两个数据: 1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。 2、数据库当前的连接线程数threads_connected。这是动态变化的。 如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝。 因为创建和销毁数据库的连接,都会消耗系统的资源。而且为了避免在同一时间同时打开过多的连接线程,现在编程一般都使用所谓数据库连接池技术。 但数据库连接池技术,并不能避免程序错误导致连接资源消耗殆尽。 这种情况通常发生在程序未能及时释放数据库连接资源或其他原因造成数据库连接资源不能释放, 该错误的简便的检查办法是,在刷新页面时,不断监视threads_connected的变化。如果max_connections足够大,而 threads_connected值不断增加以至达到max_connections,那么,就应该检查程序了。当然,如果采用数据库连接池技术,threads_connected增长到数据库连接池的最大连接线程数时,就不再增长了。 查看max_connections 进入MySQL,用命令:show variables 查看数据库最大可连接数的变量值:max_connections 查看threads_connected 进入MySQL,用命令:show status 查看当前活动的连接线程变量值:threads_connected 设置max_connections 设置办法是在my.cnf文件中,添加下面的最后红色的一行: ——————————————————————————– [mysqld] port=3306 #socket=MySQL skip-locking set-variable = key_buffer=16K set-variable = max_allowed_packet=1M set-variable = thread_stack=194K set-variable = table_cache=4 … 继续阅读

发表在 sql | 留下评论

JAVA获取数据库连接信息

package com.util.jdbc;     import java.sql.Connection;   import java.sql.Driver;   import java.sql.DriverManager;   import java.sql.PreparedStatement;   import java.sql.ResultSet;   import java.sql.ResultSetMetaData;   import java.sql.SQLException;   import java.util.Enumeration;     import org.apache.log4j.Logger;     /**   * @author ken   * @Time 2011-12-10   * SQL API 学习   */  public class JDBCMsg {     … 继续阅读

发表在 sql | 留下评论

使用JavaFX2.0的属性和绑定

本教程通过一些可以编译和运行的例子描述了JavaFX的属性和绑定。关于JavaFX的安装,请参阅JavaFX安装指南。 概述     很多年以来,Java语言一直使用JavaBean来表示对象的属性,这种模式既包含API,也包含设计模式,它已经广泛地被Java应用程序开发者所熟知,开发工具也一直使用这种模式。 这个版本将属性支持引入到了JavaFX中,它基于经过验证的JavaBean的模式,但做了扩展和改进。     JavaFX的属性经常通过绑定来综合,这是一种表达变量间关系的强大的机制。当对象被绑定后,一个对象的改变会自动被反射到另一个对象。对应用程序来说,这是非常有用的。例如,绑定可以用在帐单票据跟踪程序中。在这种情况下,当一个独立的帐单改动后,总帐单将会自动改变。另外,绑定还可以应用到图形用户界面(GUI)中,用来将应用程序的基础数据的改变同步显示出来。     绑定集成了一个或多个资源,也称为“依赖关系”,绑定观察者保存依赖关系的列表,当检测到变化时自动更新列表。     绑定的API分为两大类: 1.高级别的API:提供了一种简单的方法来创建最常见的绑定用例。它的语法很容易学习和使用,特别是在支持自动完成功能的环境中。比如NetBeans IDE中。 2.低级别的API:提供额外的灵活性,可供高级开发人员在高级别API不能满足需要时使用。低级别的API是专为快速执行和小内存占用设计的。 本教程的所面部分将介绍这些API,并提供代码示例,您可以编译和运行它们。有关其他信息,请参阅JavaFX API文档。 理解属性 理解JavaFX的属性需要学习一些新的API和命名约定。你完全有可能只对使用包含属性的类感兴趣(反对在你自已的类中实现属性)。但例1将让你熟悉一种新的来自属性模式的命名规则。它定义了一个名为Bill的类,实现了一个名为amoutDue的属性。 例1:定义一个属性 import javafx.beans.property.DoubleProperty; class Bill {     //定义一个变量来保存属性     private DoubleProperty amountDue = new DoubleProperty();     //定义一个getter方法来获取属性的值     public final double getAmountDue(){return amountDue.get();} … 继续阅读

发表在 javaFx | 留下评论