ASM

java反射:使用asm 获取方法的参数名

瘦欲@ 提交于 2019-12-11 17:09:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> package com.preapm.agent.util; import java.io.IOException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import javassist.CtClass; import javassist.CtMethod; /** * 使用ASM获得JAVA类方法参数名 */ public

如何在asm上定位数据块

跟風遠走 提交于 2019-12-10 14:50:32
转自 https://blogs.oracle.com/database4cn/%e5%a6%82%e4%bd%95%e5%9c%a8asm%e4%b8%8a%e5%ae%9a%e4%bd%8d%e6%95%b0%e6%8d%ae%e5%9d%97 我们都知道当db使用传统的文件系统时,定位block是就是通过dba_extents 中的blockid即可,然后通过bbed或dd 直接操作对应数据文件的相应block即可,从10g开始,oracle使用ASM来管理磁盘,因为所有数据文件都在ASM上,所以传统的bbed,dd都不能直接访问新型"文件系统"上的某个数据文件了。 当我们需要在特殊场景下修改某个block的内存的时候该怎么办呢?下面给您演示一下: 首先我在这里先普及一下ASM的一点基础知识,需要知道的是ASM在磁盘上存储数据,分配的时候都是AU(allocation unit)为单位的,默认情况AU是1M,所以一个2G的数据文件需要至少分配2×1024=2048个AU,当然存储这些AU的相关信息(如编号)也是需要存储空间的,这种元数据也是需要占用AU的,所以实际上从ASM层面来看分配给某个数据文件的au数量要高于它的需求数量。对于ASM来讲,数据库的所有文件,如控制文件,spfile,数据文件都是作为一种叫文件目录(file directory)类型的数据进行管理的

Erlang安装时加载openssl的libcrypto.a失败,执行crypto:start()报错的解决方案

被刻印的时光 ゝ 提交于 2019-12-10 08:22:38
刚开始碰到这个问题的时候,从网上找的例子。搞了半天不好使,后来发现了原因,主因是自己对linux认知不够,只有发布服务、查看日志的基本功。 先上原文连接:http://blog.csdn.net/zhongruixian/article/details/21076405 然后再讲自己操作失败的原因,主要是为了给自己做下记录。 错误信息: [plain] view plain copy Eshell V5.10.3 (abort with ^G) 1> crypto:start(). ** exception error: undefined function crypto:start/0 2> =ERROR REPORT==== 12-Mar-2014::17:09:15 === Unable to load crypto library. Failed with error: "load_failed, Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-3.1/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'" OpenSSL might not be installed on this system. =ERROR REPORT=

11gR2集群件任务角色分离(Job Role Separation)简介

倖福魔咒の 提交于 2019-12-10 03:21:52
在这篇文章中,我们将对11gR2 的新特性任务角色分离(Job Role Separation )进行介绍。 在11gR2,操作系统用户 grid 成为了集群件(GI)的owner,并且 ASM 成为了集群件的一部分,所以grid用户也成为了ASM 磁盘的owner。 通常有3种方式配置ASM磁盘,asmlib, 裸设备和块设备。 1. asmlib 配置asm 磁盘的owner和group。 # / etc /init.d/ oracle asm configure ….. Default user to own the driver interface : grid Default group to own the driver interface : asmadmin …… 查看ASM磁盘的设置: ls –l /dev/oracleasm/disks brw-rw---- 1 grid asmadmin 8, 33 Jul 2 18:21 DATA 注意: 从 linux 2.6 内核开始,块设备的权限和路径配置在重启之后不再被保留,除非使用udev 创建规则文件固定。例如块设备/dev/sda在重启之后可能变成/dev/sdb。如果使用udev,那么在添加新磁盘时,需要修改规则文件以确保设备名和权限在重启之后不发生改变。 如果使用asmlib, 只需要确定作为asm

Node服务器创建HTTPS服务器——SSL证书

最后都变了- 提交于 2019-12-10 02:03:14
HTTP与HTTPS介绍 HTTP:超文本传输协议,是浏览器与服务器之间的通讯协议; HTTPS:以安全为目标的HTTP通道,可以简单理解为HTTP的安全升级版; HTTPS与HTTP的区别 https协议需要到ca申请证书,一般免费证书很少,需要交费。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 Windows下创建https服务器 ~ D:\workspace\javascript>express -e nodejs-https ~ D:\workspace\javascript>cd nodejs-https && npm install ejs@0.8.5 node_modules\ejs express@3.2.6 node_modules\express ├── methods@0.0.1 ├── fresh@0.1.0 ├── cookie-signature@1.0.1 ├── range-parser@0.0.4 ├── debug@0.7.4 ├── buffer-crc32@0.2.1

centos7.7离线安装nginx

安稳与你 提交于 2019-12-09 21:24:08
一、1、安装openssl,因为编译安装nginx需要指定openssl目录 mkdir /data/openssl -p cd /data/openssl wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz 2、解压并编译安装openssl tar xf openssl-1.1.1d.tar.gz cd openssl-1.1.1d ./config --prefix=/usr/local/openssl --openssldir=/usr/local/ssl make -j 2 make install 3、导出库文件 echo /usr/local/openssl/lib >> /etc/ld.so.conf.d/openssl.conf ldconfig 检测版本信息 /usr/local/openssl/bin/openssl version -a OpenSSL 1.1.1d 10 Sep 2019 built on: Mon Dec 9 08:39:59 2019 UTC platform: linux-x86_64 options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) compiler: gcc -fPIC -pthread

Oracle中HA、RAC、Datagurad区别

杀马特。学长 韩版系。学妹 提交于 2019-12-09 21:24:03
HA 是High Availability 的首字母组合, 翻译 过来,可以叫做高可用,或高可用性,高可用(环境)。我觉得应该说HA是一个观念而不是一项或一系列具体技术,就象网格一样。作过系统方案就知道了,评价系统的性能当中就有一项高可用。广义的高可用涉及到系统的各个方面,简单来说,让系统不会中断运行,就是高可用。包括软件的高可用,硬件的高可用,网络的高可用等等。具体实现的方案包括操作系统的集群,数据库的集群,硬件的冗余,网络的冗余等等。做HA方面的软件,有IBM的 HACMP (很多常用AIX的人,常说的HA就指HACMP,乱啊)、 SUN 的Sun Cluster 、HP的MC/SG等。 在2000年以前,大家谈HA,大部分时候说的是操作系统一级的 双机热备 ,主流产品当时有IBM HACMP 4.1,HP的MC/SG啥版本忘了, sun 的系统很多人不用VCS,用的是一个叫dataware的东西。现在很多人眼中的HA也还是这样。时至今日,HA包括的东西可就多了,先不说其他方面,单就数据库,单就O rac le,与HA相关的产品先后有:高级复制(AdvanceRepication)、OPS/RAC(Real Application Cluster)、数据卫士(Data Guard)、oracle流( Oracle Streams )、分区( Oracle Partition

Java 运行时获取方法参数名

Deadly 提交于 2019-12-09 19:01:21
本文整理 Java 运行时获取方法参数名的两种方法,Java 8 的最新的方法和 Java 8 之前的方法。 Java 8 的新特性 翻阅 Java 8 的 新特性 ,可以看到有这么一条“ JEP 118 : Access to Parameter Names at Runtime”。这个特性就是为了能运行时获取参数名新加的。这个 JEP 只是功能增强的提案,并没有最终实现的 JDK 相关的 API 的介绍。查看“ Enhancements to the Reflection API ” 会看到如下介绍: Enhancements in Java SE 8 Method Parameter Reflection: You can obtain the names of the formal parameters of any method or constructor with the method java.lang.reflect.Executable.getParameters . However, .class files do not store formal parameter names by default. To store formal parameter names in a particular .class file, and thus enable

ASM(二) 利用Core API 变更类成员

一笑奈何 提交于 2019-12-08 10:04:46
之前一篇简单介绍了一下 ASM 框架。这一篇继续对CoreApi进行扩展。这里还是继续对ClassWriter ,ClassReader和ClassVisitor的应用的扩展。前面一篇主要介绍的是ClassWriter和ClassReader单独应用的场景。这一篇把这两者作为producer(ClassReader)和consumer(ClassWriter)来结合起来介绍一下另外一些用途。、 回顾: ASM 通过树这种数据结构来表示复杂的字节码结构,并利用 Push 模型来对树进行遍历,在遍历过程中对字节码进行修改。所谓的 Push 模型类似于简单的 Visitor 设计模式,因为需要处理字节码结构是固定的,所以不需要专门抽象出一种 Vistable 接口,而只需要提供 Visitor 接口。所谓 Visitor 模式和 Iterator 模式有点类似,它们都被用来遍历一些复杂的数据结构。Visitor 相当于用户派出的代表,深入到算法内部,由算法安排访问行程。Visitor 代表可以更换,但对算法流程无法干涉,因此是被动的,这也是它和 Iterator 模式由用户主动调遣算法方式的最大的区别。 在 ASM 中,提供了一个 ClassReader 类,这个类可以直接由字节数组或由 class 文件间接的获得字节码数据,它能正确的分析字节码,构建出抽象的树在内存中表示字节码

ORACLE ASM详解

我是研究僧i 提交于 2019-12-08 10:04:27
ASM:Automatic Storage Management , 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。 ASM 实例的创建和删除也可以用DBCA 这个命令来操作 。在dbca 的第一个界面选择配置自动存储管理就可以了。 ASM 实例需要CSS 进程, 如果是非RAC 环境, 在启动ASM 实例之前会提示用脚本 $ORACLE_HOME/bin/localconfig add 启动CSS。 1. ASM 实例由SGA 和后台进程组成。 1.1 SGA 组成: ASM 实例的SGA包括Buffer Cache, Share Pool, Large Pool等 。 需要注意的是Share Pool, 因为Extent Map 要放在这部分的内存中,需要更具数据量来估计Extent Map 的大小做相应的调整。 Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和: Select sum(bytes)/(1024*1024*1024) from v$datafile; Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b