有没有办法Throwable.printStackTrace(PrintStream s)
打印完整的堆栈跟踪,以便我可以看到超出最后一行"... 40 more"
?
我在这里看到:
http://www.pgrs.net/2008/1/11/command-line-clipboard-access
在linux和osx中有一种方法可以从命令行复制到剪贴板.所以我运行了我的cygwin setup.exe,但找不到xsel包.我猜也许这个软件包还没有被移植到Windows?看起来在Windows中有一个工具可以做到:
http://www.labnol.org/software/tutorials/copy-dos-command-line-output-clipboard-clip-exe/2506/
我想我会试试 - 但我认为我会问是否有人找到了一个好的解决方案.
可以这样做吗?
$ sqlplus -s user/pass "select 1 from dual"
要么
$ echo "select 1 from dual" | sqlplus -s user/pass
我知道我可以放入select 1 from dual
文件并执行此操作:
$ sqlplus -s user/pass @myFile.sql
但我想知道是否真的有必要创建一个文件只是为了满足sqlplus
通过eclipse运行Tomcat在非调试模式下运行良好,但在调试模式下运行不正常.当我尝试在调试模式下启动Tomcat服务器时,控制台输出看起来很好一段时间,但随后开始减速并最终停止,将CPU固定为100%.我不认为它是相关的,但以防万一 - 这是控制台输出正确的时候它开始减速并最终停止(通过停止我的意思是没有更多的控制台输出,但仍然是100%的CPU).
2009-09-02 14:35:30,859 INFO NONE org.springframework.context.weaving.DefaultContextLoadTimeWeaver:72 - Found Spring's JVM agent for instrumentation
2009-09-02 14:35:49,562 INFO NONE org.springframework.beans.factory.support.DefaultListableBeanFactory:414 - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ed889d: defining beans [...
2009-09-02 14:37:31,031 INFO NONE org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean:221 - Building JPA container EntityManagerFactory for persistence unit ...
Run Code Online (Sandbox Code Playgroud)
我尝试了一切我能想到的解决方法:
我上周第一次使用eclipse ganymede遇到了这个问题.在本期之前的几个月里,我一直在调试模式下运行良好.我没有对我们的项目做出任何重大改变.最后,我升级到eclipse galileo,解决了我的问题.现在2天后,我在伽利略遇到了同样的问题.就像我说它在非调试模式下工作正常.任何帮助深表感谢.
我应该补充一点,其他的东西在调试模式下工作 - 例如junit测试,所以它是特定于tomcat的东西.
我编写了一个超级简单的java类,它应该抛出异常.但是我得到的堆栈跟踪看起来像这样:
java.lang.RuntimeException: hello
at Main.go(Unknown Source)
at Main.main(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
注意:堆栈跟踪中没有行号,我希望有.
在搜索此问题时您找到的答案都是在编译时添加正确的参数,以确保行号实际上成为类文件.但是,我不相信这是我的问题,因为我在我的ant build.xml中有这个
<javac
debug="true"
debuglevel="lines,vars,source"
includeAntRuntime="false"
classpathref="classpath.compile"
srcdir="${src.dir}"
destdir="${build.classes}" />
Run Code Online (Sandbox Code Playgroud)
此外,根据javap,它看起来像行号确实成功:
$ javap -l ./build/classes/Main | head -n 9
public class Main extends java.lang.Object{
public Main();
LineNumberTable:
line 14: 0
line 22: 4
line 23: 15
line 24: 26
Run Code Online (Sandbox Code Playgroud)
什么给出了什么?当我运行代码时,是否需要在jvm中设置一个参数?
谢谢!
下面的Ant构建文件片段试图简单地输出每个sql脚本运行之前和之后的时间.我无法更改Ant目标的结构(create-tables必须像调用run-sql-script一样).问题是属性(时间和时间2)是不可变的(http://ant.apache.org/manual/Tasks/property.html),因此只有第一次操作而不是第二次操作.有没有办法做我在Ant尝试做的事情?
<target name="create-tables">
<antcall target="run-sql-script">
<param name="db.script" value="teams.sql"/>
</antcall>
<!-- Create the base UDM schema. -->
<antcall target="run-sql-script">
<param name="db.script" value="players.sql"/>
</antcall>
</target>
<target name="run-sql-script">
<tstamp>
<format property="time" pattern="MM/dd/yyyy hh:mm:ss aa"
offset="-5" unit="hour"/>
</tstamp>
<echo>before: ${time}</echo>
<sql
classpath="${classpath}"
driver="${db.driver}"
url="${db.url}"
userid="${db.userid}"
password="${db.password}"
src="${script.dir}/${db.script}"
delimiter="${script.delimiter}"
onerror="abort">
</sql>
<tstamp>
<format property="time2" pattern="MM/dd/yyyy hh:mm:ss aa"
offset="-5" unit="hour"/>
</tstamp>
<echo>after: ${time2}</echo>
</target>
Run Code Online (Sandbox Code Playgroud) 这是我的简单代码,每秒循环(不需要精确)并在必要时启动作业:
while (true) {
// check db for new jobs and
// kick off thread if necessary
try {
Thread.sleep(1000);
} catch(Throwable t) {
LOG.error("", t);
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码已经好几个月了. 就在昨天,我们开始出现问题,其中一个服务器似乎挂在Thread.sleep(1000)方法中.IOW - 已经过了一天而且Thread.sleep还没有返回.我启动了jconsole并获取有关该线程的信息.
Name: Thread-3
State: TIMED_WAITING
Total blocked: 2 Total waited: 2,820
Stack trace:
java.lang.Thread.sleep(Native Method)
xc.mst.scheduling.Scheduler.run(Scheduler.java:400)
java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)
Scheduler.java:400是上面的Thread.sleep行.按照我的预期,jconsole输出不会每秒增加"Total wait".事实上,它根本没有变化.我甚至关闭了jconsole并重新启动它,希望可能会强制刷新,但只会再次获得相同的数字.我不知道除了jvm错误地挂在sleep命令上之外还有什么其他的解释.然而,在我这些年里,我对jvm的问题很少,我认为这一定是我的疏忽.
注意:另外需要注意的是没有其他线程处于活动状态. IOW - cpu几乎空闲.我读到某个地方,如果另一个线程处于活动状态,Thread.sleep可能会被合法地饿死,但事实并非如此.
solaris版本:
$ uname -a
SunOS xcmst 5.10 Generic_141415-08 i86pc i386 i86pc
Run Code Online (Sandbox Code Playgroud)
java版本:
$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java …
Run Code Online (Sandbox Code Playgroud) 有没有办法进一步优化这个或者我是否应该满足于计算11M行需要9秒?
devuser@xcmst > mysql --user=user --password=pass -D marctoxctransformation -e "desc record_updates"
+--------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------+------+-----+---------+-------+
| record_id | int(11) | YES | MUL | NULL | |
| date_updated | datetime | YES | MUL | NULL | |
+--------------+----------+------+-----+---------+-------+
devuser@xcmst > date; mysql --user=user --password=pass -D marctoxctransformation -e "select count(*) from record_updates where date_updated > '2009-10-11 15:33:22' "; date
Thu Dec 9 11:13:17 EST 2010
+----------+
| count(*) …
Run Code Online (Sandbox Code Playgroud) 有点相关:来自java的libxml2
是的,这个问题相当啰嗦 - 对不起.我保持尽可能密集.我把问题加粗了,以便在阅读整篇文章之前更容易窥视.
为什么sax解析比dom解析更快? 我唯一能想到的是w/sax你可能忽略了大部分传入数据,因此不会浪费时间处理你不关心的xml部分.IOW - 解析w/SAX后,无法重新创建原始输入. 如果您编写SAX解析器以便它占据每个xml节点(并因此可以重新创建原始节点),那么它不会比DOM更快吗?
我问的原因是我正在尝试更快地解析xml文档.我需要在解析后访问整个xml树.我正在编写一个插入第三方服务的平台,所以我无法预测xml文档的哪些部分需要以及哪些部分不需要.我甚至不知道传入文件的结构.这就是为什么我不能使用jaxb或sax.内存占用对我来说不是问题,因为xml文档很小,我一次只需要1个内存.这是解析这个相对较小的xml文档所花费的时间.我之前没有使用过stax,但也许我需要进一步调查,因为它可能是中间地带? 如果我理解正确, 通过这种方式,原始的解析时间可能很快,但每次我要求它遍历尚未遍历的树的一部分时,就是处理发生的时候?
如果您提供了回答大多数问题的链接,我会接受您的回答(如果他们已在其他地方回答,您无需直接回答我的问题).
更新:我在sax中重写了它,并在avg 2.1 ms上解析文档.这比dom所采用的2.5毫秒有所改善(快16%),但这并不是我(等人)猜到的那么大.
谢谢
在任何地方都有这些状态的解释吗?
http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html
我的具体问题是关于这个查询:
select count(*)
from 135_5m.record_updates u, 135_5m.records r
where r.record_id = u.record_id and
(u.date_updated > null or null is null) and
u.date_updated <= '2011-01-03';
Run Code Online (Sandbox Code Playgroud)
返回一个数字 - 4053904.那么为什么大部分时间都花在"发送数据"上呢?这只是名字不好吗?当然,"发送数据"必须做的不仅仅是发送数据吗?
+--------------------------------+-----------+-------+
| Status | Duration | Swaps |
+--------------------------------+-----------+-------+
| starting | 0.000224 | 0 |
| checking query cache for query | 0.000188 | 0 |
| checking permissions | 0.000012 | 0 |
| checking permissions | 0.000017 | 0 |
| Opening tables | 0.000036 | 0 | …
Run Code Online (Sandbox Code Playgroud)