javaee


javaee24 六 2010 05:32 下午

环境win32、mingw、codelite
1、下载mysql Microsoft Windows 32. (ZIP format)

http://downloads.mysql.com/archives.php

获得mysql-noinstall-5.1.45-win32.zip,解压缩。
2、用 reimp.exe将libmysql.lib转换为libmysql.a
获取reimp.exe 从http://www.qtcn.org/download/mingw-utils-0.3.tar.gz解压缩
拷贝D:\mysql-5.1.45-win32\lib\opt\libmysql.lib到 reimp目录下。在cmd进入目录并执行
reimp libmysql.lib
执行完后产生liblibmysql.a和LIBMYSQL.def
将liblibmysql.a改名为libmysql.a,并拷贝回D:\mysql-5.1.45-win32\lib\opt\目录下
3、Complier–>Additional Search Path设置为
.;D:\mysql-5.1.45-win32\include;D:\MinGW\include\c++\3.4.5;D:\MinGW\include\c++\3.4.5\mingw32;D:\MinGW\include\c++\3.4.5\backward;D:\MinGW\include;
4、Linker–>Libray Path设置为
D:\MinGW\lib;D:\mysql-5.1.45-win32\lib\opt
Linker–>Libraries设置为
libmysql;libwsock32;
5、编写程序
将D:\mysql-5.1.45-win32\lib\opt\libmysql.dll拷贝到C:\WINDOWS\system32目录下
main.cpp
#include “MySqlTestClass.h”
int main(int argc, char* argv[]){
MySqlTestClass* myClass = new MySqlTestClass(“127.0.0.1″,”3306″,”root”,”root”,”test1″);
myClass->testMysql();
return 0;
}

MySqlTestClass.h
class MySqlTestClass
{
protected:
char* dbAddress;
char* dbPort;
char* dbUser;
char* dbPassword;
char* dbName;

public:
MySqlTestClass();
MySqlTestClass(char* dbAddress,char* dbPort,char* dbUser,char* dbPassword,char* dbName);
void testMysql();
};

MySqlTestClass.cpp
#include <MySqlTestClass.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <winsock.h>
#include <mysql.h>

MySqlTestClass::MySqlTestClass()
{

}

MySqlTestClass::MySqlTestClass(char* dbAddress,char* dbPort,char* dbUser,char* dbPassword,char* dbName)
{
this->dbAddress=dbAddress;
this->dbPassword=dbPort;
this->dbUser=dbUser;
this->dbPassword=dbPassword;
this->dbName=dbName;
}

void MySqlTestClass::testMysql(){

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char *query;
int t,r;
mysql_init(&mysql);
if (!mysql_real_connect(&mysql,this->dbAddress,this->dbUser, this->dbPassword, this->dbName,0,NULL,CLIENT_MULTI_STATEMENTS))
{
printf( “Error connecting to database: %s\n”,mysql_error(&mysql));
}
else printf(“Connected…\n”);
query = “select * from user”;

t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));
if (t)
{
printf(“Error making query: %s\n”,
mysql_error(&mysql));
}else {
printf(“[%s] made…\n”, query);
}
res = mysql_store_result(&mysql);
while(row = mysql_fetch_row(res))
{
for(t=0;t<mysql_num_fields(res);t++)
{
printf(“%s “,row[t]);
}
printf(“\n”);
}

printf(“mysql_free_result…\n”);
mysql_free_result(res);

}

javaee and spring24 六 2010 05:31 下午

1、web容器改默认端口为自定义端口
在D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml
找到
<Connector protocol=”HTTP/1.1″ port=”8080″ address=”${jboss.bind.address}” connectionTimeout=”20000″ redirectPort=”8443″ />
port=”8080″改为自定义端口
2、让非本机的局域网地址访问web容器
默认ip绑定的只能通过127.0.0.1:8080/来访问。
修改D:\jboss-5.1.0.GA\bin\run.bat
找到-Djava.endorsed.dirs=”%JBOSS_ENDORSED_DIRS%” ^
在上边加一行
-Djboss.bind.address=0.0.0.0 ^
变为如下
:RESTART
“%JAVA%” %JAVA_OPTS% ^
-Djboss.bind.address=0.0.0.0 ^
-Djava.endorsed.dirs=”%JBOSS_ENDORSED_DIRS%” ^
-classpath “%JBOSS_CLASSPATH%” ^
org.jboss.Main %*

3、包隔离发布
在xxx.war\WEB-INF\目录下新增jboss-web.xml
内容如下
<!DOCTYPE jboss-web PUBLIC “-//JBoss//DTD Web Application 5.0//EN”
“http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd”>
<jboss-web>

<class-loading java2ClassLoadingCompliance=’true’>
<loader-repository>com.footmarktech:archive=helloworld-0.0.1
<loader-repository-config>java2ParentDelegaton=true</loader-repository-config>
</loader-repository>
</class-loading>

<context-root>helloworld</context-root>
</jboss-web>
4、中文乱码
在D:\jboss-5.1.0.GA\server\default\deploy\jbossweb.sar\server.xml
找到
<Connector protocol=”HTTP/1.1″ port=”8080″ address=”${jboss.bind.address}” connectionTimeout=”20000″ redirectPort=”8443″ />
增加attribute URIEncoding=’UTF-8′
变成<Connector protocol=”HTTP/1.1″ port=”8080″ address=”${jboss.bind.address}” connectionTimeout=”20000″ redirectPort=”8443″ attribute URIEncoding=’UTF-8′/>
5、jboss5部署数据源
1)把mysql的jdbc驱动包mysql-connector-java-5.1.7-bin.jar放进D:\jboss-5.1.0.GA\server\default\lib\中
2)D:\jboss-5.1.0.GA\server\default\deploy中新增一个文件名为mysql-ds.xml
内容如下
<?xml version=”1.0″ encoding=”UTF-8″?>
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://127.0.0.1:3306/mytest?user=root&amp;password=root&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!– should only be used on drivers after 3.22.1 with “ping” support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
–>
<!– sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
–>
<!– sql to call on an existing pooled connection when it is obtained from pool – MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
–>

<!– corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) –>
<!–
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>–>
</local-tx-datasource>
</datasources>
3)使用spring获取数据源

<bean id=”dataSource”>
<property name=”jndiName”><value>java:/MySqlDS</value></property>
<property name=”resourceRef”><value>false</value></property>
<property name=”jndiEnvironment”>
<props>
<prop key=”java.naming.provider.url”>jnp://localhost:1099</prop>
<prop key=”java.naming.factory.initial”>org.jnp.interfaces.NamingContextFactory</prop>
</props>
</property>
</bean>
4)错误
错误1
2010-06-21 06:46:16,934 WARN  [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] (main) Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; – nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver, url: jdbc:mysql://127.0.0.1:3306/mytest?user=root&password=root&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:225)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:195)

由于mysqljdbc驱动包没有被提前加载,将mysqljdbc驱动放到server/default/lib下即可

错误2
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException: The reference to entity "password" must end with the ';' delimiter.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:514)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:215)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:190)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:238)
at org.jboss.resource.deployers.ManagedConnectionFactoryParserDeployer.parse(ManagedConnectionFactoryParserDeployer.java:123)
at org.jboss.resource.deployers.ManagedConnectionFactoryParserDeployer.parse(ManagedConnectionFactoryParserDeployer.java:63)
at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:239)
at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:355)
… 33 more
Caused by: org.xml.sax.SAXParseException: The reference to entity “password” must end with the ‘;’ delimiter.

jdbc驱动链接书写不正确
jdbc:mysql://127.0.0.1:3306/mytest?user=root&password=root&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
jdbc:mysql://127.0.0.1:3306/mytest?user=root&amp;password=root&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8

javaee and javascript24 六 2010 05:30 下午

<script>

function checkDate(dateString){//输入必须为20100101格式

var pattern  = /^(\d{4})(\d{2})(\d{2})$/;

var patternResult = pattern.test(dateString);

if(!patternResult){

return false;

}

var _year =dateString.substr(0,4);

var _month =dateString.substr(4,2);

var _day =dateString.substr(6,2);

var mmInt  = parseInt(_month,10);

var ddInt  = parseInt(_day,10);

if(mmInt>12){return false;}

if(mmInt==2){//如果是2月份

if((_year%4==0 && _year%100!=0)||_year%400==0){//判断是否为闰年

if(ddInt>29){return false;}

}else{

if(ddInt>28){return false;}

}

}

var mm=new Array(1,3,5,7,8,10,12); //判断每月中的最大天数

var maxDay =30;

for(i=0;i< mm.length;i++){

if (mmInt == mm[i]){

maxDay =31;

break;

}else{continue;}

}

if(ddInt>maxDay){return false;}

return true;

}

</script>

javaee24 六 2010 05:29 下午

1)http://jdbc.postgresql.org/

2)

CREATE TABLE tl_test

(

id character varying NOT NULL,

“name” character varying,

CONSTRAINT tl_test_pkey PRIMARY KEY (id)

)

WITH (

OIDS=FALSE

);

ALTER TABLE tl_test OWNER TO “admin”;

3)

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Test {

public static void main(String[] args) {

try {

Class.forName(“org.postgresql.Driver”).newInstance();

Connection con = DriverManager.getConnection(“jdbc:postgresql://127.0.0.1:5432/test”, “admin”, “admin”);

Statement st = con.createStatement();

ResultSet rs = st.executeQuery(“select * from tl_test limit 2 offset 1″);

while (rs.next()) {

System.out.println(rs.getString(2));

}

st.close();

con.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

4)pgsql用户手册中文翻译

http://www.phpx.com/man/Pgsql/index.html

5)pgsql导出导入数据

备份:pg_dump dbname > outfile

恢复:psql dbname < infile

javaee and spring24 六 2010 05:28 下午

1)将mysql数据库jdbc驱动mysql-connector-java-5.1.7-bin.jar放置于D:\resin-3.1.9\ext-lib目录下

2)D:\resin-3.1.9\conf\resin.conf增加

<database>

<jndi-name>jdbc/mysql</jndi-name>

<driver type=”com.mysql.jdbc.Driver”>

<url>jdbc:mysql://localhost:3306/fare?user=root&amp;password=root&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8</url>

<user>root</user>

<password>root</password>

</driver>

<prepared-statement-cache-size>8</prepared-statement-cache-size>

<max-connections>20</max-connections>

<max-idle-time>30s</max-idle-time>

</database>

3)spring中通过jndi获取数据源

<bean id=”dataSource”>

<property name=”jndiName”><value>java:comp/env/jdbc/mysql</value></property>

</bean>

javaee12 四 2010 12:58 下午

1、freemarker分离模板和数据

2、freemarker通过插值和调用指令来完成数据和模板的合并

插值通过${xxx}

通过标签tag <#调用预定义指令,如<#include “header.tpl”/>

或者<@调用用户自定义指令,如<@myTag  />

3、freemarker对象缺失值(null)的挑剔特性

freemarker对null值尤其挑剔,出现null后马上会终止后续的模板解释,官方解释是说为了避免程序员出现马虎大意的问题。

插值使用!给初始值,或使用<#if指令进行判断

如 ${xxx!}、${xxx!”"}、<#if xxx?exists && xxx!=null ><#else></#if>、<#if xxx!=null></#if>

!号对key值是否存在和空值都有判断

4、s2中使用freemarker实现表现层模板

1)尽量保持原型,模板所见即所得原则。

2)不用s2标签。

3)少用freemarker的标签指令

4)将ccs,js,image等网站静态资源和jee web应用分离,在webapp中使用绝对路径的引入。

5)页面传参尽量使用String,传到后台自己格式化。

6)模板尽量不使用<#assign指令,保持模板的被动特性。将数据封装到java中去。

5、s2中使用自定义模板方法

可使用自定义函数进行插值打印或使用自定义指令

UrlMethod.java

package app.web.struts2.views.freemarker;

import java.util.List;

import freemarker.template.TemplateMethodModel;

import freemarker.template.TemplateModelException;

public class UrlMethod implements TemplateMethodModel {

@SuppressWarnings(“unchecked”)

public Object exec(List arg0) throws TemplateModelException {

if(arg0==null) return null;

if(arg0.size()==0) return null;

if(arg0.size()>=1){

String l = arg0.get(0).toString()+”.do”;

if(arg0.size()>=2){

l= l+”?”+arg0.get(1);

}

return l;

}

return null;

}

}

FreemarkerManagerEx.java

package app.web.struts2.views.freemarker;

import javax.servlet.ServletContext;

import org.apache.struts2.views.freemarker.FreemarkerManager;

import freemarker.template.Configuration;

import freemarker.template.TemplateException;

public class FreemarkerManagerEx extends FreemarkerManager {

@Override

protected Configuration createConfiguration(ServletContext servletContext) throws TemplateException {

Configuration configuration = super.createConfiguration(servletContext);

configuration.setSharedVariable(“url”,new UrlMethod());

return configuration;

}

}

struts.properties

struts.freemarker.manager.classname=app.web.struts2.views.freemarker.FreemarkerManagerEx

demo.ftl

<a href=”${url(base+’/Home’)}”>Home</a>

产出html<a href=”/Home.do”>Home</a>

<a href=”${url(base+’/Home’,'action=doIndex&pageNo=1′)}”>Home</a>

产出html<a href=”/Home.do?action=doIndex&pageNo=1″>Home</a>

5、s2中使用自定义指令

package app.web.struts2.views.freemarker;

import java.io.IOException;

import java.io.Writer;

import java.util.Map;

import freemarker.core.Environment;

import freemarker.template.TemplateDirectiveBody;

import freemarker.template.TemplateDirectiveModel;

import freemarker.template.TemplateException;

import freemarker.template.TemplateModel;

public class UrlDirectiveModel implements  TemplateDirectiveModel{

public void execute(Environment env, Map arg1, TemplateModel[] arg2,TemplateDirectiveBody arg3) throws TemplateException, IOException {

freemarker.template.SimpleScalar urlx = (freemarker.template.SimpleScalar)arg1.get(“action”);

String pa=null;

if(arg1.containsKey(“parameters”)){

freemarker.template.SimpleScalar parameters = (freemarker.template.SimpleScalar)arg1.get(“parameters”);

pa = parameters.getAsString();

}

        String url = urlx.getAsString();;

        Writer writer = env.getOut();

        writer.write(“<a href=\”"+url+”.do”+(pa!=null?”?”+pa:”" )+”\”>”);

        if(arg3!=null){

        arg3.render(writer);

        }

        writer.write(“</a>”);

writer.flush();

}

}

FreemarkerManagerEx.java

package app.web.struts2.views.freemarker;

import javax.servlet.ServletContext;

import org.apache.struts2.views.freemarker.FreemarkerManager;

import freemarker.template.Configuration;

import freemarker.template.TemplateException;

public class FreemarkerManagerEx extends FreemarkerManager {

@Override

protected Configuration createConfiguration(ServletContext servletContext) throws TemplateException {

Configuration configuration = super.createConfiguration(servletContext);

configuration.setSharedVariable(“urlTag”,new UrlDirectiveModel());

return configuration;

}

}

demo.ftl

<@urlTag action=”${base+’/Home’}” parameters=”action=doIndex”>Home</@urlTag>

产出html<a href=”/Home.do?action=doIndex”>Home</a>

6、宏macro的使用

macro可以在模板中预定义模板,感觉跟自定义指令类似

demo.tpl

<#macro myTag arg0 arg1>

helloworld ${arg0!}

<#nested>

</#macro>

<@myTag arg0=”xxx” arg1=”">

ok,bye~

</@myTag>

7、<#include和<#import

<#import 可以以别名的形式引入宏库

<#import “/libs/mylib.ftl” as my>

<@my.copyright date=”1999-2002″/>

include插入另外一个模板

<#include “/common/navbar.html” parse=false encoding=”UTF-8″>

8、Expecting a string, date or number here, Expression xxxBean.yyyBean.initialPageSize is instead a freemarker.ext.beans.SimpleMethodModel

在tpl中 ${xxxBean.yyyBean.initialPageSize}

可以确认xxxBean.yyyBean.initialPageSize不等于空,就是无法显示。几经调试终于发现问题,yyyBean中的initialPageSize属性不能和方法名重复,即

yyyBean{

private String initialPageSize; //(1)

public void setInitialPageSize(String s){this.initialPageSize=s;}

public String getInitialPageSize(){return this.initialPageSize;}

public void initialPageSize(String xxx){}//(2)此方法不能存在,方法名和类成员(1)重复了。

}

javaee12 四 2010 12:56 下午

struts2是MVC框架,其中org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤器是前端控制器

使用Action类模拟二级分发控制器来实现减少对s2标签的依赖,这样的话对模板原型的破坏会比较小,实现方式如下

public class _Base extends ActionSupport{

private String action =”";

private String message =”";

public void setAction(String action){this.action=action;}

public String getAction(){return this.action;}

public void setMessage(String message){this.message=message;}

public String getMessage(return this.message);

public String dispatcher(){

String _action = this.getAction();

String _invokeAction =”doIndex”;

if(StringUtils.isBlank(_action)){

}else{

_invokeAction = _action;

}

String _result = SUCCESS;

try{

Object obj = org.apache.commons.beanutils.MethodUtils.invokeMethod(this, _action, new Object[]{});

if(obj!=null){

_result = obj.toString();

}

}catch(Exception e){

this.setMessage(e.getMessage());

}

return _result;

}

public String doIndex(){

return SUCCESS;

}

}

public class Login extends _Base{

private String username=”";

private String password=”";

public void setUsername(String username){this.username=username;}

public String getUsername(){return this.username;}

public void setPassword(String password){this.password=password;}

public String getPassword(){return this.password;}

public String doLogin(){

 try{

  //invoke service

  return “home”;

 }catch(Exception e){

 }

retrun INPUT;

}

public String doLogout(){

 //clear session

return SUCCESS;

}

}

struts.xml

<action name=”Login” method=”dispatcher”>

<result name=”success” type=”freemarker”>/WEB-INF/content/Login.ftl</result>

<result name=”input” type=”freemarker”>/WEB-INF/content/Login.ftl</result>

<result name=”home” type=”redirectAction”>Home</result>

</action>

Login.ftl

<html><head><title></title></head><body>

<form>

<input type=”hidden” name=”action” value=”doLogin”/><!–此隐藏域作为分发器的分发标志–>

<input type=”text” name=”username” value=”${username}”/>

<input type=”text” name=”password” value=”${password}”/>

<input type=”submit” value=”登陆”/>

</form>

</body></html>

登出的链接则产生 Login.do?action=doLogout

此思想来源于php的mvc实现,在php中实现MVC的框架一般都是有一个前端控制器如

index.php,通过传参调用不同的控制器和action,如

index.php?ctrl=Login&action=defaultView

index.php?ctrl=Login&action=doLogin

index.php?ctrl=Login&action=doLogout

javaee and weblogic19 三 2010 03:08 下午

环境
weblogic10
sybase15

WARN: SQL Warning: 4016, SQLState: 01ZZZ
19.3.2010 10:26:25 org.hibernate.util.JDBCExceptionReporter logWarnings
WARN: Language name in login record ‘chinese’ is not an official name on this ASE. Using default ‘us_english’ from syslogins instead.

19.3.2010 10:26:25 org.hibernate.util.JDBCExceptionReporter logWarnings
WARN: SQL Warning: 0, SQLState: 010DP
19.3.2010 10:26:25 org.hibernate.util.JDBCExceptionReporter logWarnings
WARN: 010DP: 忽略了重复连接属性 charset。

解析
SQLState: 01ZZZ
在jdbc驱动属性中加上language=us_english

LANGUAGE
设置从服务器返回的错误消息和 jConnect 消息的语言。该设置必须是 syslanguages 中的一种语言。

SQLState: 010DP是由于在配置weblobic10数据源时,在url和properties属性中都配置了charset属性
丢弃一个就可以了。

javaee19 三 2010 10:53 上午

com.sybase.jdbc3.jdbc.SybSQLException: Couldn’t find an available partition descriptor. Raise the value of the configuration parameter ‘number of open partitions’ for more partition descriptors.

org.springframework.jdbc.UncategorizedSQLException:
Hibernate operation: Could not execute query;
uncategorized SQLException for SQL []; SQL state [ZZZZZ]; error code [14126]; Couldn’t find an available partition descriptor. Raise the value of the configuration parameter ‘number of open partitions’ for more partition descriptors.;
nested exception is com.sybase.jdbc3.jdbc.SybSQLException: Couldn’t find an available partition descriptor. Raise the value of the configuration parameter ‘number of open partitions’ for more partition descriptors.

从报错来看是Sybase15数据库的参数配置问题

摘自

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00729_1500/html/errMessageAdvRes/CHDGEGGC.htm

Error 14126
Severity

17

Message text

Couldn’t find an available partition descriptor. Raise the value of the configuration parameter ‘number of open partitions’ for more partition descriptors.

Explanation

In Adaptive Server Enterprise version 15.0 and later, all tables have at least one partition, whether or not a partition was explicitly defined on the table. When you upgrade a database to Adaptive Server Enterprise 15.x, all existing tables in the database are modified to have one partition. When data is accessed from a table, necessary partitions are kept open; however, a DBA can limit the number of open partitions at any given point of time. This error indicates that there is not enough room to open a new partition.
Action

Use sp_configure to set the number of open partitions value appropriately for your server. See “Setting Configuration Parameters” in the System Administration Guide: Volume 1 for details on setting this parameter.
Versions in which this error is raised

Version 15.0 and later

sybase,jdbc,sp_configure

javaee and websphere12 二 2010 09:56 上午

环境描述
Windows平台
IBMWAS6.1.0.29
使用DM控制网络节点,DM由于无法获得受控节点的主机名导致DM无法启动

报错信息如下

[10-2-12 9:48:44:812 CST] 0000000a HostNameMap   E   HMGR0024W: 查找核心组成员的主机名的 IP 地址时发生错误。主机名为 xxxServer,异常为 java.net.UnknownHostException: xxxServer: xxxServer
at java.net.InetAddress.getAllByName0(InetAddress.java:1247)
at java.net.InetAddress.getAllByName(InetAddress.java:1174)
at java.net.InetAddress.getAllByName(InetAddress.java:1097)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.getInetAddresses(HostNameMap.java:182)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:62)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMapManager.getHostNameMap(HostNameMapManager.java:87)

[10-2-12 9:48:49:953 CST] 0000000a AppProfileCom I   ACIN0009I: 正在停止 Application Profiling 服务。
[10-2-12 9:48:49:953 CST] 0000000a ActivitySessi I   WACS0049I: ActivitySession Service 正在停止。
[10-2-12 9:48:50:031 CST] 0000000a CGBridgeServi I   CWRCB0103I: 核心组网桥服务已停止。
[10-2-12 9:48:50:078 CST] 0000000a WsServerImpl  E   WSVR0009E: 启动期间发生错误
META-INF/ws-server-components.xml
[10-2-12 9:48:50:078 CST] 0000000a WsServerImpl  E   WSVR0009E: 启动期间发生错误
com.ibm.ws.exception.RuntimeError: com.ibm.ws.exception.RuntimeError: Unable to start the CoordinatorComponentImpl
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:199)
at com.ibm.ws.runtime.WsServerImpl.start(WsServerImpl.java:140)
at com.ibm.ws.runtime.WsServerImpl.main(WsServerImpl.java:461)
at com.ibm.ws.runtime.WsServer.main(WsServer.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:183)
at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:90)
at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:72)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:981)
at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:339)
at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:94)
Caused by: com.ibm.ws.exception.RuntimeError: Unable to start the CoordinatorComponentImpl
at com.ibm.ws.hamanager.runtime.CoordinatorComponentImpl.start(CoordinatorComponentImpl.java:302)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:977)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:673)
at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:526)
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:192)
… 24 more
Caused by: com.ibm.wsspi.hamanager.HAInternalStateException: failure creating the Coordinator
at com.ibm.ws.hamanager.coordinator.impl.CoordinatorImpl.<init>(CoordinatorImpl.java:336)
at com.ibm.ws.hamanager.coordinator.corestack.CoreStackFactoryImpl.createDefaultCoreStack(CoreStackFactoryImpl.java:88)
at com.ibm.ws.hamanager.runtime.CoordinatorComponentImpl.start(CoordinatorComponentImpl.java:272)
… 28 more
Caused by: com.ibm.wsspi.hamanager.datastack.DataStackException: Failure creating core stack
at com.ibm.ws.hamanager.coordinator.impl.DCSPluginImpl.<init>(DCSPluginImpl.java:252)
at com.ibm.ws.hamanager.coordinator.impl.CoordinatorImpl.<init>(CoordinatorImpl.java:329)
… 30 more
Caused by: com.ibm.wsspi.hamanager.HAException: Host name xxxServer is not registered in DNS
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:68)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMapManager.getHostNameMap(HostNameMapManager.java:87)
at com.ibm.ws.hamanager.coordinator.dcs.CoreStackMembershipManager.createMemberMapping(CoreStackMembershipManager.java:473)
at com.ibm.ws.hamanager.coordinator.dcs.CoreStackMembershipManager.<init>(CoreStackMembershipManager.java:120)
at com.ibm.ws.hamanager.coordinator.impl.DCSPluginImpl.<init>(DCSPluginImpl.java:220)
… 31 more
Caused by: java.net.UnknownHostException: xxxServer: xxxServer
at java.net.InetAddress.getAllByName0(InetAddress.java:1247)
at java.net.InetAddress.getAllByName(InetAddress.java:1174)
at java.net.InetAddress.getAllByName(InetAddress.java:1097)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.getInetAddresses(HostNameMap.java:182)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:62)
… 35 more

解决办法
在C:\WINDOWS\system32\drivers\etc\hosts文件中直接增加改主机名和ip的对应关系,启动DM即可。

下一页 »