OwlFocus

Via


  • 首页

  • 分类

  • 归档

  • 标签

  • 搜索
close
OwlFocus

pinpoint java.net.PortUnreachableException ICMP Port Unreachable

发表于 2017-10-04 | 分类于 program

pinpoint java.net.PortUnreachableException: ICMP Port Unreachable

错误

使用pinpoint代理监控应用程序时,出现错误 java.net.PortUnreachableException: ICMP Port Unreachable

1
2
3
4
5
6
7
8
9
10
2017-10-04 16:06:37 [INFO ](c.n.p.p.s.UdpDataSender ) packet send error. size:339, TSpan(agentId:pft-rest, applicationName:pft-rest, agentStartTime:1507104270410, transactionId:00 01 CA D0 A8 B3 EE 2B 10, spanId:7542318718835916861, startTime:1507104397297, elapsed:95, rpc:/rest/v1/pft.ticket/update, serviceType:1030, endPoint:192.168.20.144:80, remoteAddr:192.168.20.144, flag:0, spanEventList:[TSpanEvent(sequence:3, startElapsed:10, endElapsed:83, serviceType:9110, endPoint:192.168.20.144:18902, annotations:[TAnnotation(key:90, value:<TAnnotationValue stringValue:[Ljava.lang.Object;@19fffe8c>), TAnnotation(key:91, value:<TAnnotationValue stringValue:RpcResult [result=true, exception=null]>)], depth:4, nextSpanId:-4375591379758469409, destinationId:192.168.20.144:18902, apiId:-41), TSpanEvent(sequence:2, startElapsed:9, endElapsed:84, serviceType:5071, depth:3, apiId:31), TSpanEvent(sequence:1, startElapsed:1, endElapsed:94, serviceType:5051, depth:2, apiId:2), TSpanEvent(sequence:0, startElapsed:0, endElapsed:95, serviceType:1031, depth:1, apiId:-1)], apiId:1, applicationServiceType:1030)
java.net.PortUnreachableException: ICMP Port Unreachable
at java.net.PlainDatagramSocketImpl.send(Native Method)
at java.net.DatagramSocket.send(DatagramSocket.java:693)
at com.navercorp.pinpoint.profiler.sender.UdpDataSender.sendPacket(UdpDataSender.java:134)
at com.navercorp.pinpoint.profiler.sender.AbstractDataSender$1.execute(AbstractDataSender.java:68)
at com.navercorp.pinpoint.profiler.sender.AsyncQueueingExecutor.doExecute(AsyncQueueingExecutor.java:172)
at com.navercorp.pinpoint.profiler.sender.AsyncQueueingExecutor.doExecute(AsyncQueueingExecutor.java:96)
at com.navercorp.pinpoint.profiler.sender.AsyncQueueingExecutor.run(AsyncQueueingExecutor.java:79)
at java.lang.Thread.run(Thread.java:745)

解决

pinpoint收集程序跑在docker容器中,在暴露pinpoint收集器端口时,没有区分通信协议,导致数据不能被收集器收集。
pinpoint收集器端口,其中profiler.collector.span.port=29996和profiler.collector.stat.port=29995需要走upd协议;profiler.collector.tcp.port=29994走tcp协议。

1
2
3
4
5
6
7
8
profiler.collector.span.ip=${profiler.collector.ip}
profiler.collector.span.port=29996
profiler.collector.stat.ip=${profiler.collector.ip}
profiler.collector.stat.port=29995
profiler.collector.tcp.ip=${profiler.collector.ip}
profiler.collector.tcp.port=29994
  • 修改前

    1
    docker run -i -t -p 9380:28080/tcp -p 29994:29994/tcp -p 29995:29995/udp -p 29996:29996/udp pft/pinpoint:latest bash
  • 修改后

    1
    docker run -i -t -p 9380:28080/tcp -p 29994:29994/tcp -p 29995:29995/udp -p 29996:29996/udp pft/pinpoint:latest bash
OwlFocus

Spring NamedParameterJdbcTemplate

发表于 2017-09-18 | 分类于 program

使用NamedParameterJdbcTemplate查询sql语句,并按实体返回数据。

配置NamedParameterJdbcTemplate

  • 在xml配置文件中,配置模板数据源信息。
1
2
<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dataSource" /> </bean>

注入NamedParameterJdbcTemplate

1
@Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

例子

  • sql语句中使用分号加参数名标识参数,如::ids
  • 通过MapSqlParameterSource设置查询参数。
1
2
3
4
5
6
7
8
public List<TicketDO> loadTicketProductIdByIds(Collection<Integer> ids) {
String sql="SELECT id,pid as product_id from ticket where id in(:ids)";
//参数
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", ids);
List<TicketDO> result=namedParameterJdbcTemplate.query(sql, parameters,new BeanPropertyRowMapper<TicketDO>(TicketDO.class));
return result;
}
OwlFocus

Hibernate StackOverflowError

发表于 2017-09-18 | 分类于 program

使用hibernate 查询数据时,出现内存溢出问题.主要是in查询时,查询内容过多,导致溢出问题。

错误

1
2
3
4
5
6
7
8
9
10
11
12
13
java.lang.StackOverflowError:
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:42)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:41)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:42)

解决

拆分in中的条件,按一定的大小切分查询条件。

1234…55
ljzhuanjiao@gmail.com

ljzhuanjiao@gmail.com

在快节奏时代,我不能在慢中消亡!!!

163 日志
5 分类
53 标签
© 2016 - 2018 ljzhuanjiao@gmail.com
由 Hexo 强力驱动
主题 - NexT.Pisces