<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[andQ的博客]]></title><description><![CDATA[業精于勤荒于嬉]]></description><link>https://blog.youkuaiyun.com/Tanganq</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tanganq]]></copyright><item><title><![CDATA[syslog watcher syslog4j]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/122460918</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/122460918</guid><author>Tanganq</author><pubDate>Wed, 12 Jan 2022 19:49:48 +0800</pubDate><description><![CDATA[1.下载syslog watcher

SyslogWatcherSetup-5.2.3.msihttps://www.aliyundrive.com/s/8C6Cw7RuyUV2.设置编码



3.java：


&lt;dependency&gt;
    &lt;groupId&gt;org.syslog4j&lt;/groupId&gt;
    &lt;artifactId&gt;syslog4j&lt;/artifactId&gt;
    &lt;version&gt;0.9.46&lt;.]]></description><category></category></item><item><title><![CDATA[logback设置maxHistory 日志清除不起作用]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/120847218</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/120847218</guid><author>Tanganq</author><pubDate>Tue, 19 Oct 2021 15:34:17 +0800</pubDate><description><![CDATA[设置了maxHistory不起作用，增加cleanHistoryOnStart后可以


&lt;appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"&gt;
    &lt;file&gt;${log.path}/default.log&lt;/file&gt;
    &lt;rollingPolicy class="ch.qos.logback.core.rolling.TimeBase...]]></description><category></category></item><item><title><![CDATA[idea docker]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/119970977</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/119970977</guid><author>Tanganq</author><pubDate>Sat, 28 Aug 2021 18:10:45 +0800</pubDate><description><![CDATA[1.centos修改docker配置

#修改Docker服务文件，需要先切换到root用户

vim /lib/systemd/system/docker.service


#注释掉"ExecStart"这一行，并添加下面这一行信息

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375




systemctl daemon-reload

syst]]></description><category></category></item><item><title><![CDATA[java调用.so方法]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/119837675</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/119837675</guid><author>Tanganq</author><pubDate>Sat, 21 Aug 2021 12:00:21 +0800</pubDate><description><![CDATA[Linux环境下

yum install gcc-c++ cmake

1.新建Hello.c


#include &lt;stdio.h&gt;
int add(int a,int b);
int add(int a,int b) {
return a+b;
}


2.编译.c生成.so动态链接库文件

2.1生成.o文件

gcc -fpic -c Hello.c





2.2生成.so文件

gcc -shared -o libHello.so Hello.o





3.引入依赖...]]></description><category></category></item><item><title><![CDATA[添加swagger-ui依赖]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/119056371</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/119056371</guid><author>Tanganq</author><pubDate>Sat, 24 Jul 2021 12:33:57 +0800</pubDate><description><![CDATA[&lt;!-- swagger2 --&gt;
&lt;dependency&gt;
    &lt;groupId&gt;io.springfox&lt;/groupId&gt;
    &lt;artifactId&gt;springfox-swagger2&lt;/artifactId&gt;
    &lt;version&gt;2.9.2&lt;/version&gt;
    &lt;exclusions&gt;
        &lt;exclusion&gt;
            &..]]></description><category></category></item><item><title><![CDATA[Win10添加开机自动启动]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/119055801</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/119055801</guid><author>Tanganq</author><pubDate>Sat, 24 Jul 2021 11:48:03 +0800</pubDate><description><![CDATA[将快捷方式添加到

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
]]></description><category></category></item><item><title><![CDATA[打印类serialVersionUID]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/117561815</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/117561815</guid><author>Tanganq</author><pubDate>Fri, 04 Jun 2021 15:00:49 +0800</pubDate><description><![CDATA[ObjectStreamClass osc = ObjectStreamClass.lookup(Demo.class);
System.out.println(osc.getSerialVersionUID());

]]></description><category></category></item><item><title><![CDATA[JAXBContext.newInstance线程阻塞]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/117134882</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/117134882</guid><author>Tanganq</author><pubDate>Fri, 21 May 2021 21:09:16 +0800</pubDate><description><![CDATA[问题现象：

java.lang.Thread.State: BLOCKED (on object monitor)

at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:719)

- waiting to lock &lt;0x0000000080af2208&gt; (a sun.net.www.protocol.jar.URLJarFile)

at java.io.FilterI...]]></description><category></category></item><item><title><![CDATA[记录xx项目生产oom导致dump，通过jvisualvm排查.hprof文件找出问题根源]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/115314080</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/115314080</guid><author>Tanganq</author><pubDate>Mon, 29 Mar 2021 23:13:15 +0800</pubDate><description><![CDATA[记录xx项目生产dump排查

1.描述

20200229 6点生产某台机器宕机重启，通过运维拿出dump文件(:java_pid1（2020-02-29）.hprof)，如图



刚开始接收dump文件不知道如何排查，公司同事用jprofile9，用这个看不出什么。故保存dump后续研究

====================================================================================

20210329 学习jvm后通过visu]]></description><category></category></item><item><title><![CDATA[w10无法打开jar]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/115149611</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/115149611</guid><author>Tanganq</author><pubDate>Tue, 23 Mar 2021 22:55:45 +0800</pubDate><description><![CDATA[1.选择打开程序jre/bin/javaw.exe打开

2.如果没反应

打开注册表，开始-&gt;运行（或者用快捷键WIN+R），输入regedit，确定

编辑注册表：HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command，修改数据数值为 ["D:\Program Files\Java\jdk1.6.0_21\jre\bin\javaw.exe"-jar"%1"]

（只要在原来的数值的"%1" 前添加-jar即可）。
...]]></description><category></category></item><item><title><![CDATA[cpu飙升测试]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/115025288</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/115025288</guid><author>Tanganq</author><pubDate>Sat, 20 Mar 2021 12:04:09 +0800</pubDate><description><![CDATA[代码:DemoController.java



			package com.xxx.demo;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** cpu飙升** @author admin* @date 2021/3/20 10:57*/@RestController@RequestMap...]]></description><category></category></item><item><title><![CDATA[mybatis3.5.3使用resultType线程阻塞]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114855207</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114855207</guid><author>Tanganq</author><pubDate>Mon, 15 Mar 2021 22:47:13 +0800</pubDate><description><![CDATA[Object getRowValue(ResultSetWrapper rsw, ResultMap resultMap, String columnPrefix) throws SQLException {
final ResultLoaderMap lazyLoader = new ResultLoaderMap();Object rowValue = createResultObject(rsw, resultMap, lazyLoader, columnPrefix);
if (row...]]></description><category></category></item><item><title><![CDATA[I/O模型]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114802583</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114802583</guid><author>Tanganq</author><pubDate>Sun, 14 Mar 2021 20:42:13 +0800</pubDate><description><![CDATA[阻塞I/O模型:最常用的I/O模型就是阻塞I/O模型，在缺省情形下，所有文件操作都是阻塞的。我们以套接字接口为例:在进程空间中调用recvfrom，在系统调用知道数据包到达且被复制到应用进程的缓冲区中或者发生错误才返回，在次期间一致会等待，进程在从调用revcfrom开始到它返回的整段时间内都是被阻塞的，
	非阻塞I/O:recvfrom从应用层到内核的时候，如果该缓冲区没有数据的话，就直接返回一个EWOULDBLOCK错误，一般都对非阻塞I/O模型进行轮询检查这个状态，看内核是不是有数据到来



...]]></description><category></category></item><item><title><![CDATA[转发:线上数据库的死锁问题排查]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114500246</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114500246</guid><author>Tanganq</author><pubDate>Sun, 07 Mar 2021 22:12:44 +0800</pubDate><description><![CDATA[转发 https://mp.weixin.qq.com/s/bRKcuUo3Pbfv6CPK82Y01A

一次诡异的线上数据库的死锁问题排查过程

原创HollisJava之道2019-04-09

前几天，线上发生了一次数据库死锁问题，这一问题前前后后排查了比较久的时间，这个过程中自己也对数据库的锁机制有了更深的理解。本文总结了这次死锁排查的全过程，并分析了导致死锁的原因及解决方案。希望给大家提供一个死锁的排查及解决思路。

本文涉及到MySql执行引擎、数据库隔离级别、Innodb锁机制、索引、...]]></description><category></category></item><item><title><![CDATA[B+Tree插入过程]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114438686</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114438686</guid><author>Tanganq</author><pubDate>Sat, 06 Mar 2021 13:47:03 +0800</pubDate><description><![CDATA[假设二阶树



在分裂时中位数节点会作为key，并上移成为父节点，中位数左右数据分别作为左右子节点，中位数数据会存放在右节点中，然后左节点指针指向右节点的中位数数据

叶节点只存储索引，叶子节点存储数据，叶子节点之间使用链表关联
...]]></description><category></category></item><item><title><![CDATA[threadlocal 数组索引下标计算]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114436830</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114436830</guid><author>Tanganq</author><pubDate>Sat, 06 Mar 2021 12:28:28 +0800</pubDate><description><![CDATA[package com.example.webdemo.framework.threadlocal;

/**
 * 计算threadlocal扩容后下标索引
 *
 * @author safe
 * @date 2021/3/6
 */
public class MagicHashCode {
    //ThreadLocal中定义的hash魔数
    private static final int HASH_INCREMENT = 0x61c88647;

    public static .]]></description><category></category></item><item><title><![CDATA[Chrome Automatiin Extension 崩溃]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/114010019</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/114010019</guid><author>Tanganq</author><pubDate>Wed, 24 Feb 2021 09:33:46 +0800</pubDate><description><![CDATA[Chrome Automatiin Extension 崩溃了。
解决：不要用管理员运行pychram

]]></description><category></category></item><item><title><![CDATA[NoSuchMethodError:XmlOptions.setEntityExpansionLimit]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/113871557</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/113871557</guid><author>Tanganq</author><pubDate>Fri, 19 Feb 2021 20:49:25 +0800</pubDate><description><![CDATA[poi导入时报错:


Caused by: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
	at org.apache.poi.ooxml.POIXMLTypeLoader.&lt;clinit&gt;(POIXMLTypeLoader.java:43)
	at org.apache.poi.xssf.model.T]]></description><category></category></item><item><title><![CDATA[spring boot Invalid bound statement (not found)]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/110123940</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/110123940</guid><author>Tanganq</author><pubDate>Wed, 25 Nov 2020 13:00:49 +0800</pubDate><description><![CDATA[前提

1：检查xml文件所在package名称是否和Mapper interface所在的包名一一对应；2：检查xml的namespace是否和xml文件的package名称一一对应；3：检查方法名称是否对应；4：检查包扫描是否能包含

问题:

dao和mapper.xml配置无问题,调用接口报错:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 

具体配置信息:


			前提

		]]></description><category></category></item><item><title><![CDATA[Runtime.getRuntime().addShutdownHook(shutdownHook)；]]></title><link>https://blog.youkuaiyun.com/Tanganq/article/details/109037739</link><guid>https://blog.youkuaiyun.com/Tanganq/article/details/109037739</guid><author>Tanganq</author><pubDate>Fri, 06 Nov 2020 10:38:20 +0800</pubDate><description><![CDATA[这个方法的意思就是在jvm中增加一个关闭的钩子，当jvm关闭的时候，会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子，当系统执行完这些钩子后，jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。
...]]></description><category></category></item></channel></rss>