2017年4月7日金曜日

oracle 11g が要求する各種設定を一括設定

ubuntu16.10 にoracle11gをインストールするのに必要な各種設定を纏めたスクリプトである。(ubuntu16.04でも同様にンストール可能であった)
※インストール手順については 「ubuntuに oracle11g をインストール」 を参照



1.rootユーザにて以下のシェル実行
#! /bin/sh

#
apt-get install gawk rpm libaio1 libaio-dev libtool expat alien ksh unixodbc unixodbc-dev sysstat elfutils libelf-dev default-jre # libstdc++5

ln -sf /bin/bash /bin/sh
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64

# add ubuntu16.10
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64

#
mkdir /etc/rc.d
ln -s /etc/rc0.d /etc/rc.d/rc0.d
ln -s /etc/rc1.d /etc/rc.d/rc1.d
ln -s /etc/rc2.d /etc/rc.d/rc2.d
ln -s /etc/rc3.d /etc/rc.d/rc3.d
ln -s /etc/rc4.d /etc/rc.d/rc4.d
ln -s /etc/rc5.d /etc/rc.d/rc5.d
ln -s /etc/rc6.d /etc/rc.d/rc6.d
ln -s /etc/rcS.d /etc/rc.d/rcS.d

#
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
useradd -u 1200                           \
        -g oinstall                       \
        -G dba,oper,backupdba,dgdba,kmdba \
        -d /home/oracle                   \
        -m oracle

sudo mkdir -p /u01/app
sudo chown -R oracle:oinstall /u01/app
sudo chmod -R 775 /u01/app

#
REL_FILE=/etc/redhat-release
echo "Red Hat Linux release 5" > $REL_FILE

#
cat <<EOF >> /etc/security/limits.conf
#
oracle soft nproc  2047
oracle hard nproc  16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack  10240
EOF

#
cat <<EOF >> /etc/sysctl.conf
#
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
kernel.shmmax=1073741824
EOF

#
sysctl -p

#
mv $REL_FILE $REL_FILE.bk

2016年2月15日月曜日

jasper でレポート作成(サブレポート)

■サブリポートを使用した帳票
1.メインデザイン
$ cat sample01.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="jasper_report_template" language="groovy" pageWidth="595"
pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20">
  <field name="layout" class="java.lang.String" />
  <field name="subList" class="java.util.List" />
  <detail>
     <band height="23">
       <subreport>   
         <reportElement positionType="Float" x="0" y="3" width="300"
         height="20" isRemoveLineWhenBlank="true" backcolor="#99ccff"/>

         <dataSourceExpression>
           new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
           ($F{subList})
         </dataSourceExpression>
         <subreportExpression class="java.lang.String">
           <![CDATA[$F{layout}]]>
         </subreportExpression>
       </subreport>   
     </band>
  </detail>
</jasperReport>

2.サブデザイン1(サブレポート)
$ cat sample02.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="jasper_report_template" language="groovy" pageWidth="595"
pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20">
  <field name="pack" class="java.lang.String"/>
  <field name="apple" class="java.lang.String"/>
  <columnHeader>
    <band height="23">
      <staticText>
        <reportElement x="0" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font isBold="true" />
        </textElement>
        <text><![CDATA[PACK]]></text>
      </staticText>
      <staticText>
        <reportElement x="101" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font isBold="true" />
        </textElement>
        <text><![CDATA[APPLE]]></text>
      </staticText>
    </band>
  </columnHeader>
  <detail>
    <band height="23">
      <textField>
        <reportElement x="0" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font size="9" />
        </textElement>
        <textFieldExpression class="java.lang.String">
          <![CDATA[$F{pack}]]>
        </textFieldExpression>
      </textField>
      <textField>
        <reportElement x="101" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font size="9" />
        </textElement>
        <textFieldExpression class="java.lang.String">
          <![CDATA[$F{apple}]]>
        </textFieldExpression>
      </textField>
    </band>
  </detail>
</jasperReport>

3.サブデザイン2(サブレポート)
$ cat sample03.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="jasper_report_template" language="groovy" pageWidth="595"
pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20">
  <field name="pack" class="java.lang.String"/>
  <field name="apple" class="java.lang.String"/>
  <columnHeader>
    <band height="23">
      <staticText>
        <reportElement x="0" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font isBold="true" />
        </textElement>
        <text><![CDATA[PACK]]></text>
      </staticText>
      <staticText>
        <reportElement x="101" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font isBold="true" />
        </textElement>
        <text><![CDATA[APPLE]]></text>
      </staticText>
    </band>
  </columnHeader>
  <detail>
    <band height="23">
      <textField>
        <reportElement x="0" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font size="9" />
        </textElement>
        <textFieldExpression class="java.lang.String">
          <![CDATA[$F{pack}]]>
        </textFieldExpression>
      </textField>
      <textField>
        <reportElement x="101" y="3" width="100" height="15" />
        <textElement textAlignment="Center" verticalAlignment="Middle">
          <font size="9" />
        </textElement>
        <textFieldExpression class="java.lang.String">
          <![CDATA[$F{apple}]]>
        </textFieldExpression>
      </textField>
    </band>
  </detail>
</jasperReport>

4.メインbean
$ cat databean.java
import java.util.*;

public class databean {
  private String layout;
  private Listsublist;

  public void setLayout(String layout) { this.layout = layout; }
  public String getLayout() { return(layout); }

  public void setSubList(Listsublist) { this.sublist = sublist; } 
  public List getSubList() { return(sublist); } 
}

5.サブbean
$ cat subbean.java
public class subbean {
  private String pack;

  public void setPack(String pack) { this.pack = pack; }
  public String getPack() { return(pack); }
}

6.サブbean1
$ cat subbean1.java
public class subbean1 extends subbean {
  private String apple;

  public void setApple(String apple) { this.apple = apple; }
  public String getApple() { return(apple); }
}

7.サブbean2
$ cat subbean2.java
public class subbean2 extends subbean {
  private String orange;
  private String value;

  public void setOrange(String orange) { this.orange = orange; }
  public String getOrange() { return(orange); }

  public void setValue(String value) { this.value = value; }
  public String getValue() { return(value); }
}

8.メインプログラム
$ cat sample01.java
import java.util.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.*;

public class sample01 {

   public static void main(String[] args) {
      databeanlist data = new databeanlist();
      ArrayListdataList = data.getdatabeanlist();

      JRBeanCollectionDataSource beanColDataSource =
            new JRBeanCollectionDataSource(dataList);

      try {
         Map parameters = new HashMap();
         JasperFillManager.fillReportToFile("sample01.jasper",
            "sample01.jrprint",parameters, beanColDataSource);
      } catch (JRException e) {
         e.printStackTrace();
      }
      System.out.println("Done filling!!! ...");
   }
}

9.実行
$ ls
databean.java      jrc.class  sample01.java   sample02.jrxml  subbean.java   subbean2.java
databeanlist.java  jrc.java   sample01.jrxml  sample03.jrxml  subbean1.java

$ java jrc sample01.jrxml sample01.jasper
$ java jrc sample02.jrxml sample02.jasper
$ java jrc sample03.jrxml sample03.jasper
$ javac sample01.java
$ java sample01
$ ls
databean.class      jrc.java          sample01.jrxml   subbean.class   subbean2.java
databean.java       sample01.class    sample02.jasper  subbean.java
databeanlist.class  sample01.jasper   sample02.jrxml   subbean1.class
databeanlist.java   sample01.java     sample03.jasper  subbean1.java
jrc.class           sample01.jrprint  sample03.jrxml   subbean2.class

10.帳票確認
$ java net.sf.jasperreports.view.JasperViewer sample01.jrprint



jasper でレポート作成(帳票作成)

■帳票作成
1.bean
$ cat databean.java
public class databean {
  private String first_name ;

  public void setFirst_name(String name) { first_name = name; }
  public String getFirst_name() { return(first_name); }
}
2.bean生成
$ cat databean.java
public class databean {
  private String first_name ;

  public void setFirst_name(String name) { first_name = name; }
  public String getFirst_name() { return(first_name); }
}
3.帳票作成
import java.util.*;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.*;

class sample01 {
   @SuppressWarnings("unchecked")
   public static void main(String[] args) {
      databeanlist db = new databeanlist();
      ArrayList dblist = db.getdatabeanlist();

      JRBeanCollectionDataSource beanColDataSource =
      new JRBeanCollectionDataSource(dblist);

      Map parameters = new HashMap();
      try {
         JasperFillManager.fillReportToFile(
         "sample01.jasper", "sample01.jrprint", parameters, beanColDataSource);
      } catch (JRException e) {
         e.printStackTrace();
      }
   }
}
4.コンパイル
$ javac sample01.java
$ ls
databean.class  databeanlist.class  jrc.class  sample01.class   sample01.java
databean.java   databeanlist.java   jrc.java   sample01.jasper  sample01.jrxml
5。実行(.jrprint作成)
$ java sample01
databean.class      databeanlist.java  sample01.class   sample01.jrprint
databean.java       jrc.class          sample01.jasper  sample01.jrxml
databeanlist.class  jrc.java           sample01.java
6。印刷イメージ確認
$ java net.sf.jasperreports.view.JasperViewer test01.jrprint

jasper でレポート作成(コンパイル済デザインの確認)

■コンパイル済デザインの確認
$ ls
jrc.class  jrc.java  sample01.jasper  sample01.jrxml

$ java net.sf.jasperreports.view.JasperDesignViewer sample01.jasper 



jasper でレポート作成(デザインコンパイル)

■デザインコンパイル
$ cat jrc.java
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;

class jrc {
  public static void main(String[] args) {
    if (args.length != 2) {
      System.out.printf("Usage : java jrc src.jrcxml dst.jasper\n");
      System.exit(1);
    }

    try {
      JasperCompileManager.compileReportToFile(args[0],args[1]);
    } catch (JRException e) {
      e.printStackTrace();
    }
    System.out.printf("Done compiling[%s]!! ...\n",args[0]);
   }
}


% javac jrc.java
% ls
jrc.java  sample01.jrxml

% java jrc sample.jrxml sample.jasper
% ls 
jrc.class  jrc.java  sample01.jasper  sample01.jrxml



jasper でレポート作成(デザイン確認)

■デザイン確認
$ cat sample01.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="jasper_report_template" language="groovy" pageWidth="595"
pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20"
topMargin="20" bottomMargin="20">
    <field name="first_name" class="java.lang.String" />
    <columnHeader>
     <band height="23">
 <staticText>
     <reportElement x="5" y="3" width="100" height="15" />
     <textElement textAlignment="Center"
         verticalAlignment="Middle"> <font isBold="true" />
     </textElement>
     <text><![CDATA[first_name]]></text>
 </staticText>
     </band>
    </columnHeader>
    <detail>
        <band height="16">
  <textField>
      <reportElement x="5" y="0" width="100" height="15" />
      <textElement textAlignment="Center"
          verticalAlignment="Middle">
   <font size="9" />
      </textElement>
      <textFieldExpression class="java.lang.String">
          <![CDATA[$F{first_name}]]>
  </textFieldExpression>
  </textField>
        </band>
    </detail>
</jasperReport>
java net.sf.jasperreports.view.JasperDesignViewer -XML sample01.jrxml





jasper でレポート作成(インストール)

■jasper環境構築
$ cd 展開ディレクトリ
$ /usr/bin/unzip ダウンロードディレクトリ/jasperreports-6.2.0-project.zip
$ cd jasperreports-6.2.0/
$ export DIR=`pwd`
$ export CLASSPATH="pwd/dist/jasperreports-6.2.0.jar:`find $PWD -name '*.jar' -print | sed 's/$/:/' | perl -pe '{chop;}'`"