Tomcat

jvm 内存溢出输出地址

大憨熊 提交于 2020-08-19 19:04:34
jar 启动时输出地址 在启动时加入参数 -XX:+HeapDumpOnOutOfMemoryError ,设置 -Xms10m -Xmx10m , 启动时就会内存溢出,起溢出的位置. 在idea的工作区间的项目下,直接溢出hprof文件 在linux启动时,则在jar包的同级目录下生产hprof文件 在tomca下,则在bin的目录中 不加该参数 如果不加该参数,即使jvn内存溢出,也无法生成hprof文件,无法进行跟踪 指定地址 -XX:HeapDumpPath=./ 使用 该参数可以hprof文件指定地址. 如果是 ./ 应该是默认值.即在启动文件的目录下 -XX:HeapDumpPath=/opt/apache-tomcat-web/logs/ 这个会在/opt/apache-tomcat-web/logs/下生成该文件 来源: oschina 链接: https://my.oschina.net/u/1590027/blog/4434036

SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)

纵饮孤独 提交于 2020-08-19 19:00:19
作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 导读 :在上一篇文章 《SpringCloud 应用在 Kubernetes 上的云上实践 - 开发篇》 中讲到可以通过两个工具,轻松地将一个 SpringCloud 应用从初始化到本地运行。本篇文章,我们将介绍如何将上一篇文章中提到的应用在云上跑起来。 初始化集群 为了将应用运行在云端,首先我们需要一个 Kubernetes 集群,在 EDAS 中使用 Kubernetes 集群目前最快的方式,是将一个阿里云容器集群中的 Kubernetes 集群( ACK 集群 ),导入到 EDAS 中来。 如果还没有ACK集群的话,您可以通过以下两种方式来创建一个: 直接进入容器服务的控制台进行创建; 如果您已经有一个在云上建好的集群,或者有一个在其他 IDC 或友商中有的集群,也可以在容器服务这边通过“注册已有集群”的方式,导入到容器服务中来。 等到 Kubernetes 集群就绪之后,在 EDAS 上需要进行一次集群“导入”,导入方式如下图所示: 在导入集群时,EDAS 会做以下操作: 初始化 EDAS 的集群控制器和相关资源,主要包含:基于开放云原生应用标准的 OAM Controller、日志采集的 Agent、监控链路中的 Arms 环境信息等;其中大部分控制器运行时不会占用用户集群的资源,而会运行在

Tomact运行后页面不自动弹出(After launch已勾选)!!!

不问归期 提交于 2020-08-19 18:27:27
今天第一次遇到了一个十分操蛋的问题,话不多说,附图如下: (这里建议去下载谷歌浏览器!!!) 这里我先网上找了一下问题,但发现网上描述的大多数都是说After launch没有勾选,就像下面这种情况: 我在网上找了半天,结果还是老问题,还是不能像之前一样运行后自动弹出页面(可能自己比较懒,不习惯手动输入地址)。 最后自己想到是不是由于tomcat缓存过多,于是抱着试一试的心态清理了tomcat的缓存。如何清理tomcat缓存,可以参考下面的做法: 清理Tomact缓存 结果就可以自己弹出页面了!!!真是柳暗花明又一村啊!!!!没想到这么简单,希望对和我一样有同样问题的你能有帮助!!! 来源: oschina 链接: https://my.oschina.net/u/4318809/blog/4513784

docker相关----解决tomcat容器启动成功,无法访问的问题

折月煮酒 提交于 2020-08-19 13:48:06
使用docker安装了tomcat镜像,默认为latest最新的(8.5.50版本),依据tomcat镜像创建容器并同时做了端口映射 命令为:docker run --name tomcat01 -d -p 8083:8080 tomcat 用的是阿里云的云服务器,防火墙也开了端口,在浏览器中访问, http://112.74.40.14:8083/ 提示如下界面 提示资源未找到,这就出现了tomcat容器正常运行但是无法访问到tomcat首页的问题,其实这并不是我们镜像或者容器的问题,只是这个版本的tomcat开发者不知道怎么想的,在webapps下是空的,所以访问不到首页,后来换成8.0.52版本就可以了 来源: oschina 链接: https://my.oschina.net/u/4258525/blog/4499711

lsof入门

梦想与她 提交于 2020-08-19 05:31:47
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。几乎可以说"Everything is a file" : 管道是文件,网络套接字(Sockets)是文件,目录是文件,设备是文件...... lsof(list open files),即:列出被进程所打开的文件的信息,而被打开的文件可以是: 1.普通文件 2.目录 3.网络文件系统的文件 4.字符或设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接 8.网络文件(例如:NFS file、网络socket,unix域名socket) 9.还有其它类型的文件,等等 [root@ftp conf]# lsof -i @127.0.0.1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 684 tomcat 53u IPv6 14547349 0t0 TCP localhost:mxi (LISTEN) java 684 tomcat 55u IPv6 37665928 0t0 TCP localhost:37730->localhost:mysql (ESTABLISHED) java 684 tomcat 56u IPv6

Quartz : Memory Leak?

非 Y 不嫁゛ 提交于 2020-08-19 04:27:09
问题 I am using Quartz to run a job every hour. The servlet is running on Tomcat and I am using the ServletConextListener to listen for when the context is destroyed. When I shut down tomcat, I get the message: "appears to have started a thread named [MyScheduler_Worker-1] but has failed to stop it". But later I see this message: "[DEBUG] 28 Sep 11:45:26.671 AM MyScheduler_Worker-1 [org.quartz.simpl.SimpleThreadPool] WorkerThread is shut down." So is it safe to assume that there is no memory leak

docker 构建基础镜像 时区问题

廉价感情. 提交于 2020-08-19 04:17:49
修订记录 : 2016.07.05 修正系统更新时区重置问题 前言 在使用tomcat官方docker 镜像时,程序在与微信通信过程中返回了时间差问题,查看后发现是docker 容器的问题。 问题 docker 官方镜像使用的都是UTC 标准时间,这就导致了比beijing时间晚8小时。 解决这一问题并不难,只要修正容器的时区就可以了。众所周知,对容器的修改并不会影响到镜像,所以又会出现这样一个问题,再次从镜像启动容器时,时间就会又变成UTC 标准时间。对于此问题,自然是可以使用docker commit 来解决,但我并不想这样做…… 解决方案 基于centos 的镜像,系统时区是由/etc/localtime 控制 基于debian 的镜像,系统时区由/etc/timezone 控制 可将系统内的/usr/share/zoneinfo/Asia/Shanghai 文件直接复制到以上位置修改时区 但在基于centos 镜像内,只修改/etc/localtime ,tomcat 取的仍然是UTC 时区,可配置catalina 启动文件的JAVA_OPTS参数,修正tomcat的时区 JAVA_OPTS="-Duser.timezone=GMT+08" 还有一种方式,就是同时设置/etc/timezone文件 docker build -t morrowind/centos .

Tomcat的80端口被占用问题_解决方案

荒凉一梦 提交于 2020-08-19 03:32:48
重要一点:要清楚80端口被占用可能有多种原因,我这里最终查出来的原因是SQL server的SQL Server Reporting Services服务占用80端口 80端口问题回溯路径 1、在windows的命令行输入 netstat -ano ,查看80端口被占用的pid 2、在任务管理器的详细信息一栏找PID为4的进程 奇怪的是占用的用户居然是SYSTEM,这样的话进程无法结束,于是下一步 3、用命令 netsh http show servicestate 来查看一下当前的http服务状态,这里存在请求队列,进程ID为12104(这个进程ID是不唯一的,你和我的可能会不一样,但下一步检索PID的结果可能是同一个进程),在任务管理器中寻找PID为12104的到底是哪个进程 真相大白,是 SQL server的SQL Server Reporting Services进程占用了80端口 4、右键我的电脑-->管理-->服务,找到 Reporting Services 服务,先关闭服务,然后再设置为手动,再然后应用,最后确定即可。 5、验证,再次打开cmd,用 netstat -ano 命令,发现已经没有占用0.0.0.0:80端口的进程了,80端口解除占用,问题解决。 来源: oschina 链接: https://my.oschina.net/u/4334316/blog

Saas 应用12个架构规范

孤人 提交于 2020-08-19 03:26:52
引言 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如下的 SaaS 应用提供了方法论: 使用 标准化 流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。 和操作系统之间尽可能的 划清界限 ,在各个系统中提供 最大的可移植性 。 适合 部署 在现代的 云计算平台 ,从而在服务器和系统管理方面节省资源。 将开发环境和生产环境的 差异降至最低 ,并使用 持续交付 实施敏捷开发。 可以在工具、架构和开发流程不发生明显变化的前提下实现 扩展 。 这套理论适用于任意语言和后端服务(数据库、消息队列、缓存等)开发的应用程序。 特别声明 本文转自国外一篇文章,由Adam Wiggins所著,原文地址: https://12factor.net/ 在此文基础上增加个人的理解以及部分图解。 统一源代码管理系统 一份基准代码(Codebase),多份部署(depl o y) 在类似 SVN 这样的集中式版本控制系统中, 基准代码 就是指控制系统中的这一份代码库;而在 Git 那样的分布式版本控制系统中, 基准代码 则是指最上游的那份代码库。 基准代码和应用之间总是保持一一对应的关系: 一旦有多个基准代码,就不能称为一个应用,而是一个分布式系统。分布式系统中的每一个组件都是一个应用,每一个应用可以分别使用 12-Factor

Windows上同时运行两个Tomcat

帅比萌擦擦* 提交于 2020-08-19 00:57:09
步骤 1.获得免安装包 从 Tomcat官网 下载免安装包。 2.解压复制 解压并创建两个副本tomcat1和tomcat2,它们的路径分别为: tomcat1: C:\tomcat\double\apache-tomcat-7.0.90-8081 tomcat2: C:\tomcat\double\apache-tomcat-7.0.90-8082 3.配置环境变量 CATALINA_HOME_8081: C:\tomcat\double\apache-tomcat-7.0.90-8081 CATALINA_HOME_8082: C:\tomcat\double\apache-tomcat-7.0.90-8082 4.修改端口值 修改tomcat1、tomcat2的 conf\server.xml 的端口值,修改地方分别为 <Server port="8005" shutdown="SHUTDOWN"> 的 port 属性 <Connector port="8080" protocol="HTTP/1.1" 的 port 属性 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 的 port 属性 port 属性的取值范围为[1024, 65535]。 设置tomcat1的访问端口为