小编Cas*_*dan的帖子

Hibernate"APPARENT DEADLOCK !!!为未分配的待处理任务创建紧急线程!"

我最近在日志中收到以下消息,然后是JVM崩溃(由于OOME).我不知道该怎么做,并且非常感谢任何指导.

2015-03-19 21:15:02,457 [Timer-0] WARN  (ThreadPoolAsynchronousRunner.java [run]:608) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6824f21c -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! 
2015-03-19 21:26:29,543 [Timer-0] WARN  (ThreadPoolAsynchronousRunner.java [run]:624) - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6824f21c -- APPARENT DEADLOCK!!! Complete Status: 
    Managed Threads: 3
    Active Threads: 3
    Active Tasks: 
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@15da1b6b (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@b35b08a (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@51cfdd17 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
    Pending Tasks: 
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@19397937
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@5c7d3838
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@7aea62dd
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@55622ff2
        com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@74004a8
Pool thread stack traces:
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
        com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:560)
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
        java.net.SocketOutputStream.socketWrite0(Native Method)
        java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
        java.net.SocketOutputStream.write(SocketOutputStream.java:153)
        java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3227)
        com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1917)
        com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
        com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1751)
        com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3425)
        com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2196)
        com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
        com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
        sun.reflect.GeneratedConstructorAccessor306.newInstance(Unknown Source)
        sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        java.lang.reflect.Constructor.newInstance(Constructor.java:408)
        com.mysql.jdbc.Util.handleNewInstance(Util.java:406) …
Run Code Online (Sandbox Code Playgroud)

java hibernate c3p0

11
推荐指数
2
解决办法
2万
查看次数

REST API设计链接资源集合

我一直在思考定义具有相互依赖性的资源集合的正确方法.

例如,让我们考虑可以通过URI独立访问的"文档"和"注释":

/documents/{doc-uri}
/comments/{comment-id}
Run Code Online (Sandbox Code Playgroud)

但是,我们通常希望收集与特定文档相关的注释.这就产生了一个围绕如何进行检验的设计问题.

我可以看到几个主要选项:

1.)在文档uri之后提供一个集合uri以供评论

GET /documents/{doc-uri}/comments/
Run Code Online (Sandbox Code Playgroud)

2.)为评论集合提供参数以按文档选择

GET /comments/{comment-id}?related-doc={doc-uri}
Run Code Online (Sandbox Code Playgroud)

3.)使用内容协商来请求通过Accept标头返回相关的注释.

// Get all the comments for a document
GET /documents/{doc-uri} Accept: application/vnd.comments+xml
// Create a new comment
POST /documents/{doc-uri} Content-Type: application/vnd.comment+xml <comment>...</comment>
Run Code Online (Sandbox Code Playgroud)

方法1的优点是自动将注释放在文档的上下文中.使用POST/PUT创建,更新和删除注释时,这也很好.但是,它不提供对文档上下文之外的注释的全局访问.因此,如果我们想要搜索系统中的所有注释,我们需要方法#2.

方法2提供了许多与#1相同的好处,但是在没有文档上下文的情况下创建注释是没有意义的.由于注释必须明确与文档相关.

方法3从GET和POST/create角度来看很有趣,但是通过更新和删除会变得有点毛茸茸.

我可以看到所有这些方法的专家和骗子,所以我正在寻找一些可能已经接近并解决过这个问题的人的更多指导.

我正在考虑同时使用方法1和2,因此我可以提供所需的所有功能,但我担心我可能会过度复杂/重复功能.

api rest

10
推荐指数
1
解决办法
2372
查看次数

当Cassandra没有主数据并且数据没有被复制但是分布时,他怎么会没有单点故障?

也许我是误会,但Apache Cassandra维基百科的文章说:

"群集中的每个节点都具有相同的角色.没有单点故障.数据分布在群集中(因此每个节点包含不同的数据),但没有主节点,因为每个节点都可以为任何请求提供服务."

每个节点如何包含不同的数据,但没有单点故障?例如,我想在这个Senario中,如果一个节点在向下包含我正在查询的记录时,那么一个不同的节点将接收该请求,但是,它不会有数据来满足它......因为数据是打开的失败的节点..

有人可以为我清除这个吗?

谢谢!

cassandra

7
推荐指数
1
解决办法
2866
查看次数

XSLT1.0/XPath 1.0按日期范围选择节点.这甚至可能吗?

假设我有一个包含属性datetime的节点列表,我想只选择$ compare-datetime之后出现的记录.

<records>
    <record @datetime="2010-01-04T16:48:15.501-05:00"/>
    <record @datetime="2010-01-03T16:48:15.501-05:00"/>
    ...etc...
</records>
Run Code Online (Sandbox Code Playgroud)

在xquery中我可以选择日期范围内的项目

/records/record[xs:dateTime(@datetime) > xs:dateTime($compare-datetime)]
Run Code Online (Sandbox Code Playgroud)

然而,在XSLT 1.0中,我尝试了很多不同的方法,并且很多都在寻找答案,没有任何运气可以让它发挥作用.

我开始认为没有将实际的dateTime解析为整数值,这在xslt中不是一个简单的任务.

我希望有人可以给我一个明确的答案,所以我至少可以知道我的反对意见.

干杯,

卡西

xslt xpath

6
推荐指数
2
解决办法
5190
查看次数

如何通过事件总线告知GWT单元格小部件数据是否已更改?

我有一个GWT单元树,用于显示CMS的文件结构.我正在使用AsyncDataProvider从我创建的自定义RPC类加载数据.我还有一个Web Socket系统,它将从也在系统中工作的其他客户端广播事件(文件创建,重命名,移动,删除等).

我想要解决的是当我收到其中一个事件时,我如何正确更新我的Cell Tree?

我想这个问题类似于在页面上有两个我的Cell Tree实例,它们呈现相同的服务器端数据,并希望确保当用户更新一个时,另一个更新也通过使用EventBus.

我觉得这应该很简单,但我现在花了大约6个小时才没有进展.我的代码包含在下面:

注意:我没有使用RequestFactory,即使它看起来像我是我的自定义RPC框架.此外,FileEntity只是一个文件的简单表示,其名称可以访问getName().

private void drawTree() {

        // fileService is injected earlier on and is my own custom rpc service
        TreeViewModel model = new CustomTreeModel(new FileDataProvider(fileService));
        CellTree tree = new CellTree(model, "Root");

        tree.setAnimationEnabled(true);

        getView().getWorkspace().add(tree);

    }

    private static class CustomTreeModel implements TreeViewModel {

        // I am trying to use a single AsyncDataProvider so I have a single point of loading data which I can manipulate (Not sure if this is …
Run Code Online (Sandbox Code Playgroud)

gwt event-bus

6
推荐指数
1
解决办法
1116
查看次数

(FInite State Machine) - 在javascript中实现XML模式验证器

我已经在一个项目上工作了一个月左右,现在用javascript开发XML验证器(XSD).我已经非常接近但仍然遇到问题.

我唯一能运作良好的是将模式结构规范化为存储在DOM中的FSA.我已经尝试了几种方法来针对FSA验证我的xml结构,并且每次都变短.

验证器用于运行客户端WYSIWYG XML编辑器,因此它必须满足以下要求

  • 必须高效(即使使用复杂模型,<15ms也可以验证元素子节点模式)
  • 必须公开一个后验证模式信息集(PSVI),可以查询该信息以确定可以在各个点从文档中插入/删除哪些元素,并使文档保持有效.
  • 必须能够验证xml子节点结构,如果无效则返回哪些内容为EXPECTED或哪些内容为UNEXPECTED.

- 更多信息请考虑以下示例 -
首先,我将模式结构转换为一般FSA表示,规范化xs:group和xs:import之类的命名空间.例如考虑:

<xs:group name="group1">
    <xs:choice minOccurs="2">
         <xs:element name="e2" maxOccurs="3"/>
         <xs:element name="e3"/>
    </xs:choice>
</xs:group>
<xs:complexType>
    <xs:seqence>
        <xs:element name="e1"/>
        <xs:group ref="group1"/>
    </xs:sequence>
<xs:complexType>
Run Code Online (Sandbox Code Playgroud)

将被转换为类似的广义结构:

<seq>
    <e name="e" minOccurs="2"/>
    <choice minOccurs="2">
         <e name="e2" maxOccurs="3"/>
         <e name="e3"/>
    </choice>
</seq>
Run Code Online (Sandbox Code Playgroud)

我通过XQuery和XSLT在所有服务器端执行此操作.

我构建验证器的第一次尝试是使用javascript中的递归函数.在此过程中,如果我发现可能存在的内容,我会将其添加到全局PSVI信号中,表明它可以添加到层次结构中的指定点.

我的第二次尝试是迭代的,而且速度要快得多,但这两次都遇到了同样的问题.

这两个都可以正确验证简单的内容模型,但是一旦模型变得更复杂并且非常嵌套,它们就会失败.

我想我正在从完全错误的方向接近这个问题.根据我所读到的,大多数FSA是通过将状态推送到堆栈来处理的,但我不确定如何在我的情况下执行此操作.

我需要就以下问题提出建议:

  1. 状态机是否是正确的解决方案,它是否会实现顶部所述的目标.
  2. 如果使用状态机是什么最好的方法将架构结构转换为DFA?汤普森算法?我是否需要优化DFA才能使其正常工作.
  3. 什么是最好的方式(或最有效的方式)在javascript中实现这一切(注意优化,并且预处理可以在服务器上完成)

谢谢,

卡西

其他编辑:

我一直在看这个教程:http : //www.codeproject.com/KB/recipes/OwnRegExpressionsParser.aspx专注于正则表达式.它似乎与我需要的非常相似,但专注于为正则表达式构建解析器.这带来了一些有趣的想法.

我认为xml架构只分解为几个运算符:

sequence - > Concatination
choice - > union
minOccurs/maxOccurs - 可能需要更多Kleene Closure,不能完全确定表示此运算符的最佳方法.

javascript xml xsd finite-automata

5
推荐指数
1
解决办法
2338
查看次数

在调用其中的另一个脚本时,Bash脚本过早退出

我有一个bash脚本调用另一个bash脚本,如下所示:

#!/bin/bash
echo "Hi"
./script-two.sh
echo "Hello!"
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它永远不会打印"你好!"

我想这是因为./script-two.sh(我没写过)以某种方式退出或更改shell.我在这篇文章的最后添加了这个脚本.

有没有办法我可以在script-two.sh执行后继续执行我的执行?

我已经研究过使用trap命令,但我并没有完全理解它的使用.

谢谢,

卡西

这是script-two.sh的内容

    #!/bin/sh
#  This file is part of the DITA Open Toolkit project hosted on 
#  Sourceforge.net. See the accompanying license.txt file for 
#  applicable licenses.
#  (c) Copyright IBM Corp. 2006 All Rights Reserved.

export DITA_HOME=cwd


if  [ "${DITA_HOME:+1}" != "1" ]; then 
   echo "DITA_HOME environment variable is empty or not set";
   exit 127;
fi

echo $DITA_HOME

cd "$DITA_HOME"

# Get the absolute path of DITAOT's …
Run Code Online (Sandbox Code Playgroud)

bash

3
推荐指数
1
解决办法
3618
查看次数

使用GWT defferred绑定将gwt类替换为非gwt类

我有一个非常简单的问题,我希望我能用GWT的deffered绑定来解决.

我有大量编写到org.w3c.dom.*接口的代码.我不想更改此代码,所以我希望我可以在编译时交换这些类.

像这样的东西(即使它不起作用):

<replace-with class="com.google.gwt.dom.client.Document">
    <when-type-is class="org.w3c.dom.Document"/>
  </replace-with>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我认为这里的问题是我的两个类都需要实现相同的接口.如果我错了,请纠正我,让我处于这样一种情况:我需要重做很多事情才能做到我需要做的事情.

我希望有一个更简单的解决方案?

谢谢,

卡西

java xml gwt w3c dom

2
推荐指数
1
解决办法
336
查看次数

Gwt elemental2:如何在gwt JavaScript对象和JsInterop对象之间进行转换?

让我说我有一个com.google.gwt.dom.client.Document gwtDocument节点,我想将其转换为elemental2.dom.Document

由于Document扩展了JavaScriptObject,我认为我可以做类似的事情:

elemental2.dom.Document elementalDoc = (elemental2.dom.Document)(gwtDocument);
Run Code Online (Sandbox Code Playgroud)

但是,使用jsinterop的elemental2类不会扩展JavaScriptObject.那么如何在两者之间进行转换呢?

谢谢!

gwt gwt-elemental gwt-jsinterop

1
推荐指数
1
解决办法
448
查看次数