Articles of hibernate模式

java.net.SocketException:太多打开文件Spring Hibernate Tomcat

我有一个客户端生产Linode服务器上的Hibernate,Spring,Debian,Tomcat,MySql堆栈。 它是一个Spring-Multitenant应用程序,为大约30个客户端托pipe网页。 应用程序启动正常,然后过一会儿,我得到这个错误: java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216) at java.lang.Thread.run(Thread.java:662) 然而,在引发这个错误之前,nagios会通知我ping到服务器的停止响应。 以前,我把nginx作为代理,而且每个请求都得到这个nginx错误,不得不重新启动tomcat: 2014/04/21 12:31:28 [error] 2259#0: *2441630 no live upstreams while connecting to upstream, client: 66.249.64.115, server: abril, request: "GET /catalog.do?op=requestPage&selectedPage=-195&category=2&offSet=-197&page=-193&searchBox= HTTP/1.1", upstream: "http://appcluster/catalog.do?op=requestPage&selectedPage=-195&category=2&offSet=-197&page=-193&searchBox=", host: "www.anabocafe.com" 2014/04/21 12:31:40 [error] 2259#0: *2441641 upstream […]

在Debian服务器上安装Hibernate3有问题

我试图将Hibernate3安装到我的Linux服务器上,但是我很难搞清楚如何才能使其工作。 我已经尝试了以下内容: 将需要的jar文件复制到一个文件夹中,并通过“ java -classpath etc.来调用该文件夹 java -classpath / home / mcmaster / javalibs / * -jar craftbukkit.jar错误:无法find或加载主类.home.mcmaster.javalibs.dom4j-1.6.1.jar 加载java命令,而只调用导致正常类未发现错误的核心hibernate 在一个奇怪的安装到系统的Java库位置没有任何影响 使用apt-get to install libhibernate3-java 我试图export $CLASSPATH=~/javalibs其中包含所有必需的jar子 我真的把我的头发作为一个中级java用户试图学习一些更先进的东西(对我来说)。 这是我在尝试调用Session类时遇到的错误: 引起:java.lang.ClassNotFoundException:org.hibernate.Session

用sed添加一个内核参数到grub

我正在写一个bash脚本,以非交互方式在Linux系统上启用hibernate模式。 为此,我需要在该行的引号内插入一个包含斜线的shellvariables。 b编辑文件的相关部分如下所示: GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="" 我需要将其更改为: GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=/dev/disk/by-partuuid/c5a552c2-fe8f-423a-9037-c35bf090d9c3" GRUB_CMDLINE_LINUX="" 增加的参数由一个shellvariables提供。 我试过这个: sed -i '\*^GRUB_CMDLINE_LINUX_DEFAULT* s*"$* '"$(grub_resume_boot_option)"'"*' /etc/default/grub 我正在瞄准的逻辑是:“寻找一个以模式”GRUB_CMDLINE_LINUX_DEFAULT“开始的行,并用给定的模式replace最后的”。 使用*作为分隔符来保留扩展variables中的斜杠。 但是,如果行尾有空格,则该命令将失败。 是否有任何方法可以使它不占用线路末尾的空格? 另外,如果有更简单或可读的解决scheme,我会非常感兴趣。

MySQL通过Hibernate在Linux中区分大小写

我将Eclipse中的开发环境从Windows移到了Debian。 当我这样做的时候,我注意到当Hibernate在初始化过程中进行数据模型检查时,由于大小写敏感的问题,MySQL中没有find(只是一些)表名。 其中两个表格仍然通过“Table_name”而不是“table_name”进行search。 当它发生时,Hibernate创build新的表“Table_name”忽略现有的“table_name”。 我读到这是由于大小写敏感的操作系统中的MySQLfunction 为了避免在MySQL / Hibernate中大写表名,我在每个模型类中添加了@Table(name="table_name")语句,并且在DAO类中检查了所有的HQL查询,所有的表引用都是小写的,任何一次尝试都没有取得成功。 我错过了什么configuration来解决这个问题? 谢谢。

hibernate生成重复的UUID

我们有一个6节点的Red Hat 4.4.7 / Linux 2.6.32networking,每个节点运行一个Java应用程序,使用Hibernate 3.3.2.GA在中央Oracle数据库中创buildlogging。 我们遇到了一个问题,Hibernate生成重复的UUID。 有问题的Java类定义如下: @Entity @Table(name = "X_Y") @GenericGenerator(name = "xy-uuid", strategy = "uuid") public class XY implements … { @Id @Column(name = "X_Y_ID") @GeneratedValue(generator = "xy-uuid") private String id; … } 使用我们已经使用了一段时间的这个定义,我们遇到了重复X_Y_ID键的问题。 我们禁用了X_Y_ID上的唯一约束并重新执行了这个过程。 与此同时,我们开始在我们的代码和Hibernate代码中寻找可能的错误。 阅读Hibernate的UUIDHexGenerator ,看起来UUID的前8个字符是基于机器的IP地址, UUIDHexGenerator 8个字符是基于JVM的启动时间。 在X_Y_ID的禁用唯一约束进程完成之后,我们对产生的UUID进行了一些分析。 我们发现实际上有59个重复的X_Y_ID值。 令我们惊讶的是,查询: select SUBSTR(X_Y_ID,1,8), COUNT(*) from X_Y group by SUBSTR(X_Y_ID,1,8) […]

org.hibernate.hql.internal.ast.QuerySyntaxException:<table_name>未映射

这是我的hibernate.cfg.xml <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!– Assume hibernateTutorial is the database name –> <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernateTutorial</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></property> <property name="current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property> <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="hibernate.c3p0.idle_test_period">3600</property> <property name="hibernate.c3p0.timeout">28800</property> <!– List of XML mapping files. Give absolute path of the xml files after src/ –> <mapping resource="xml/Employee.hbm.xml"></mapping> </session-factory> </hibernate-configuration> 这是我的表EMPLOYEE desc EMPLOYEE; +————+————-+——+—–+———+—————-+ | Field […]

hibernate – 在Linux和Windows上的不同行为

我遇到了一个奇怪的问题,即hql查询在Windows上按预期工作,但不在Linux上。 这是查询: select distinct resource from Resource resource , ResourceOrganization ro where (resource.active=true) and (resource.published=true) and ((resource.resourcePublic=true) or ((ro.resource.id=resource.id and ro.organization.id=2) and ((ro.resource.id=resource.id and ro.forever=true) or (ro.resource.id=resource.id and current_date between ro.startDate and ro.endDate)))) 说明:我从数据库中获取资源,在这些资源中,它们是活跃的,发布的,公开的或与组织共享的,以便共享永远或在两个date之间。 我在两个数据库中都有相同的数据(从Linux导出并在Windows中导入)。 在窗口上,我得到的结果大小= 275 在Linux中我得到的结果大小= 0 我已经看了Linux中的数据,我发现我应该得到非零的结果大小。 Windows有Java 1.5,而Linux有Java 1.6 有什么build议,我应该看看解决这个问题? 谢谢!

如何停止机器睡眠/hibernate执行期间

我有一个用golang(部分)编写的应用程序,作为其操作的一部分,它将产生一个外部进程(用c编写)并开始监视。 这个外部过程可能需要几个小时才能完成,所以我正在寻找一种方法来防止机器在处理过程中睡眠或hibernate。 我希望能够放弃这个锁,以便当这个过程完成时,机器被允许睡眠/hibernate 我最初的目标是Windows,但跨平台解决scheme将是理想的(nix甚至hibernate?)。

hibernate失败时的Windows通知

我使用C ++编写WinAPI,并使用以下调用来hibernate计算机: SetSuspendState(TRUE, NULL, FALSE); 但是,如果计算机安装了更大的RAMarrays,hibernate失败了。 所以我想知道,如果hibernate失败,Windows是否发送任何通知? 如果没有,如何判断我的hibernate请求是否失败?

如何根据Windows AD对用户进行身份validation?

我有一个JSF-Hibernate Web应用程序。 我需要根据Windows AD对用户进行身份validation,Web应用程序只应允许从X组成员login,否则应该redirect到错误页面。 我怎样才能configuration这个? 此外,我想在所有页面上显示login用户的名称,而不是服务器计算机的Windows用户的名称。 我已经为此尝试了System.property("user.name") ,但这只返回服务器名称的Windows用户的名称。