100% found this document useful (3 votes)
21 views

Foundation Db2 and Python: Access Db2 with Module-Based API Examples Using Python 1st Edition W. David Ashley download

The document is about the book 'Foundation Db2 and Python' by W. David Ashley, which provides guidance on accessing Db2 using Python with module-based API examples. It includes details on installation, management, and utilities related to Db2, along with practical applications and SQL usage. The book is designed for those looking to enhance their understanding of Db2 in conjunction with Python programming.

Uploaded by

rheemselfei8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
21 views

Foundation Db2 and Python: Access Db2 with Module-Based API Examples Using Python 1st Edition W. David Ashley download

The document is about the book 'Foundation Db2 and Python' by W. David Ashley, which provides guidance on accessing Db2 using Python with module-based API examples. It includes details on installation, management, and utilities related to Db2, along with practical applications and SQL usage. The book is designed for those looking to enhance their understanding of Db2 in conjunction with Python programming.

Uploaded by

rheemselfei8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 77

Foundation Db2 and Python: Access Db2 with

Module-Based API Examples Using Python 1st


Edition W. David Ashley install download

https://ebookmeta.com/product/foundation-db2-and-python-access-
db2-with-module-based-api-examples-using-python-1st-edition-w-
david-ashley/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

Foundation Db2 and Python: Access Db2 with Module-Based


API Examples Using Python 1st Edition W. David Ashley

https://ebookmeta.com/product/foundation-db2-and-python-access-
db2-with-module-based-api-examples-using-python-1st-edition-w-
david-ashley-2/

Practical Explainable AI Using Python: Artificial


Intelligence Model Explanations Using Python-based
Libraries, Extensions, and Frameworks Pradeepta Mishra

https://ebookmeta.com/product/practical-explainable-ai-using-
python-artificial-intelligence-model-explanations-using-python-
based-libraries-extensions-and-frameworks-pradeepta-mishra/

Learn OpenCV with Python by Examples 2nd Edition James


Chen

https://ebookmeta.com/product/learn-opencv-with-python-by-
examples-2nd-edition-james-chen/

Pocket Handbook of GI Pharmacotherapeutics 3rd Edition


Marianna G Mavilia George Y Wu

https://ebookmeta.com/product/pocket-handbook-of-gi-
pharmacotherapeutics-3rd-edition-marianna-g-mavilia-george-y-wu/
Training a Wife 1st Edition Trinity Blacio

https://ebookmeta.com/product/training-a-wife-1st-edition-
trinity-blacio/

Physics Text Book Part 1 for Class 12 12089 Ncert


(Author)

https://ebookmeta.com/product/physics-text-book-part-1-for-
class-12-12089-ncert-author/

The Business of Emotions in Modern History 1st Edition


Mandy L. Cooper

https://ebookmeta.com/product/the-business-of-emotions-in-modern-
history-1st-edition-mandy-l-cooper/

Web Development and Design Foundations with HTML5, 10/e


10th Edition Terry Felke-Morris

https://ebookmeta.com/product/web-development-and-design-
foundations-with-html5-10-e-10th-edition-terry-felke-morris/

A companion to medical anthropology Second Edition


César Abadía Barrero Editor Merrill Singer Editor
Pamela Irene Erickson Editor

https://ebookmeta.com/product/a-companion-to-medical-
anthropology-second-edition-cesar-abadia-barrero-editor-merrill-
singer-editor-pamela-irene-erickson-editor/
Euphrates River Valley Settlement The Carchemish Sector
in the Third Millennium BC Edgar Peltenberg

https://ebookmeta.com/product/euphrates-river-valley-settlement-
the-carchemish-sector-in-the-third-millennium-bc-edgar-
peltenberg/
Foundation
Db2 and Python
Access Db2 with Module-Based API
Examples Using Python

W. David Ashley
Foundation Db2
and Python
Access Db2 with Module-Based API
Examples Using Python

W. David Ashley
Foundation Db2 and Python
W. David Ashley
Austin, TX, USA

ISBN-13 (pbk): 978-1-4842-6941-1 ISBN-13 (electronic): 978-1-4842-6942-8


https://doi.org/10.1007/978-1-4842-6942-8

Copyright © 2021 by W. David Ashley


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Celestin Suresh John
Development Editor: James Markham
Coordinating Editor: Divya Modi
Cover designed by eStudioCalamar
Cover image designed by Pixabay
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza,
Suite 4600, New York, NY 10004-1562, USA. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@
springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole
member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc
is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for reprint,
paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/978-­1-­4842-­6941-­1. For more
detailed information, please visit http://www.apress.com/source-­code.
Printed on acid-free paper
This book is dedicated to teachers everywhere, but especially
all those who had me as a student.
Table of Contents
About the Author��������������������������������������������������������������������������������������������������� xiii

About the Technical Reviewer���������������������������������������������������������������������������������xv

Chapter 1: Introduction to Db2��������������������������������������������������������������������������������� 1


What Is a Relational Database?���������������������������������������������������������������������������������������������������� 3
The Relational Model��������������������������������������������������������������������������������������������������������������� 3
Domains���������������������������������������������������������������������������������������������������������������������������������� 4
Keys and Indexes��������������������������������������������������������������������������������������������������������������������� 4
Relationships��������������������������������������������������������������������������������������������������������������������������� 4
Transactions���������������������������������������������������������������������������������������������������������������������������� 5
Stored Procedures������������������������������������������������������������������������������������������������������������������� 5
Constraints������������������������������������������������������������������������������������������������������������������������������ 6
Normalization�������������������������������������������������������������������������������������������������������������������������� 6
SQL������������������������������������������������������������������������������������������������������������������������������������������������ 6
Data Definition Language (DDL)����������������������������������������������������������������������������������������������� 7
Data Query Language (DQL)���������������������������������������������������������������������������������������������������� 7
Data Control Language (DCL)��������������������������������������������������������������������������������������������������� 7
Data Manipulation Language (DML)���������������������������������������������������������������������������������������� 7
The ibm_db Project����������������������������������������������������������������������������������������������������������������������� 8
Summary�������������������������������������������������������������������������������������������������������������������������������������� 8

Chapter 2: Installing Db2������������������������������������������������������������������������������������������ 9


My Development Environment������������������������������������������������������������������������������������������������������ 9
Installation Prerequisites������������������������������������������������������������������������������������������������������������ 10
Planning the Db2 Install�������������������������������������������������������������������������������������������������������������� 11
Installing Db2������������������������������������������������������������������������������������������������������������������������������ 12

v
Table of Contents

Db2 Post-install Tasks����������������������������������������������������������������������������������������������������������������� 19


Installing the Db2 Sample Database������������������������������������������������������������������������������������������� 20
Summary������������������������������������������������������������������������������������������������������������������������������������ 21

Chapter 3: Db2 Management���������������������������������������������������������������������������������� 23


Db2 Instances����������������������������������������������������������������������������������������������������������������������������� 23
db2ilist����������������������������������������������������������������������������������������������������������������������������������� 25
Instance Environment Commands����������������������������������������������������������������������������������������� 25
Creating an Instance������������������������������������������������������������������������������������������������������������� 26
Arranging a Communication Port and Host for an Instance�������������������������������������������������� 26
Updating an Instance������������������������������������������������������������������������������������������������������������� 27
Upgrading an Instance���������������������������������������������������������������������������������������������������������� 28
Dropping an Instance������������������������������������������������������������������������������������������������������������ 29
Using Other Commands with an Instance����������������������������������������������������������������������������� 29
Databases����������������������������������������������������������������������������������������������������������������������������������� 30
Db2 Catalog Views����������������������������������������������������������������������������������������������������������������� 31
Locking Event Monitor����������������������������������������������������������������������������������������������������������� 31
Tablespace Information��������������������������������������������������������������������������������������������������������� 32
Storage Group Control Files��������������������������������������������������������������������������������������������������� 33
Global Configuration File������������������������������������������������������������������������������������������������������� 33
History Files��������������������������������������������������������������������������������������������������������������������������� 33
Logging Files������������������������������������������������������������������������������������������������������������������������� 33
Automated Storage Containers���������������������������������������������������������������������������������������������� 33
Creating a Database�������������������������������������������������������������������������������������������������������������� 34
Listing Databases������������������������������������������������������������������������������������������������������������������ 35
Activating a Database������������������������������������������������������������������������������������������������������������ 36
Deactivating a Database�������������������������������������������������������������������������������������������������������� 36
Connecting to a Database����������������������������������������������������������������������������������������������������� 36
Dropping a Database������������������������������������������������������������������������������������������������������������� 36
Tables������������������������������������������������������������������������������������������������������������������������������������������ 37
Table Types���������������������������������������������������������������������������������������������������������������������������� 39
Built-in Data Types���������������������������������������������������������������������������������������������������������������� 39

vi
Table of Contents

Creating a Table��������������������������������������������������������������������������������������������������������������������� 41
Alter a Table��������������������������������������������������������������������������������������������������������������������������� 43
Other Table SQL Statements�������������������������������������������������������������������������������������������������� 43
Dropping a Table�������������������������������������������������������������������������������������������������������������������� 44
Summary������������������������������������������������������������������������������������������������������������������������������������ 44

Chapter 4: Database Physical Design��������������������������������������������������������������������� 45


Phase 1: Data Gathering and Normalization������������������������������������������������������������������������������� 46
Data Gathering����������������������������������������������������������������������������������������������������������������������� 46
Data Normalization���������������������������������������������������������������������������������������������������������������� 48
Business Rules���������������������������������������������������������������������������������������������������������������������� 51
Phase 2: Physical Design of the Database���������������������������������������������������������������������������������� 51
Backups��������������������������������������������������������������������������������������������������������������������������������� 52
Summary������������������������������������������������������������������������������������������������������������������������������������ 53

Chapter 5: Db2 Utilities������������������������������������������������������������������������������������������� 55


Backup Command����������������������������������������������������������������������������������������������������������������������� 56
What Is a Backup?����������������������������������������������������������������������������������������������������������������� 56
Backup Verification���������������������������������������������������������������������������������������������������������������� 57
Advanced Backup Options����������������������������������������������������������������������������������������������������� 57
Backup Syntax����������������������������������������������������������������������������������������������������������������������� 57
Export Command������������������������������������������������������������������������������������������������������������������������� 59
Command syntax������������������������������������������������������������������������������������������������������������������� 60
Usage Notes�������������������������������������������������������������������������������������������������������������������������� 60
Import Command������������������������������������������������������������������������������������������������������������������������ 61
Command Syntax������������������������������������������������������������������������������������������������������������������ 61
Load Command��������������������������������������������������������������������������������������������������������������������������� 62
Command Syntax������������������������������������������������������������������������������������������������������������������ 62
Restore Command���������������������������������������������������������������������������������������������������������������������� 63
Command Syntax������������������������������������������������������������������������������������������������������������������ 64
Summary������������������������������������������������������������������������������������������������������������������������������������ 65

vii
Table of Contents

Chapter 6: Business Rules and Constraints������������������������������������������������������������ 67


NOT NULL Attribute��������������������������������������������������������������������������������������������������������������������� 67
Primary Key��������������������������������������������������������������������������������������������������������������������������������� 68
Indexes���������������������������������������������������������������������������������������������������������������������������������������� 69
Foreign Keys������������������������������������������������������������������������������������������������������������������������������� 70
CHECK and Unique Constraints��������������������������������������������������������������������������������������������������� 71
DEFAULT Constraint��������������������������������������������������������������������������������������������������������������������� 72
Triggers��������������������������������������������������������������������������������������������������������������������������������������� 72
Summary������������������������������������������������������������������������������������������������������������������������������������ 76

Chapter 7: Writing Good SQL for Db2���������������������������������������������������������������������� 77


Relational Theory������������������������������������������������������������������������������������������������������������������������ 77
Reduce Passes Through Data����������������������������������������������������������������������������������������������������� 78
Using Indexes to Increase Performance������������������������������������������������������������������������������������� 81
Sorting and Grouping������������������������������������������������������������������������������������������������������������������ 81
Programs Containing SQL����������������������������������������������������������������������������������������������������������� 82
Use Db2 Utilities Where Possible������������������������������������������������������������������������������������������������ 83
Db2 Functions����������������������������������������������������������������������������������������������������������������������������� 84
Multiple Ways to Code SQL��������������������������������������������������������������������������������������������������������� 86
Summary������������������������������������������������������������������������������������������������������������������������������������ 86

Chapter 8: Python and ibm_db������������������������������������������������������������������������������� 87


Your First Python ibm_db Program��������������������������������������������������������������������������������������������� 89
Using Parameter Markers������������������������������������������������������������������������������������������������������ 96
More on Parameter Markers�������������������������������������������������������������������������������������������������� 98
Producing Multiple Reports with Parameter Markers��������������������������������������������������������� 100
Using Parameter Markers Without Binding Variables���������������������������������������������������������� 103
Joining Tables���������������������������������������������������������������������������������������������������������������������� 106
Inserts, Updates, and Deletes���������������������������������������������������������������������������������������������� 109
Some Other ibm_db APIs����������������������������������������������������������������������������������������������������� 112
Creating Database Objects�������������������������������������������������������������������������������������������������� 116

viii
Table of Contents

Obtaining Attributes of an Existing Table����������������������������������������������������������������������������� 120


Obtaining Attributes of a Result Set������������������������������������������������������������������������������������ 126
ibm_db_dbi and Python������������������������������������������������������������������������������������������������������������ 130
Where Is the ibm_db Module Going?���������������������������������������������������������������������������������������� 133
The ibm_db_dbi Module������������������������������������������������������������������������������������������������������ 134
The Django Database Interface������������������������������������������������������������������������������������������� 134
The SQLAlchemy Adapter���������������������������������������������������������������������������������������������������� 135
The Alembic Adapter����������������������������������������������������������������������������������������������������������� 136
The Future��������������������������������������������������������������������������������������������������������������������������� 137
Summary���������������������������������������������������������������������������������������������������������������������������������� 137

Appendix A: Python ibm_db API��������������������������������������������������������������������������� 139


i bm_db APIs������������������������������������������������������������������������������������������������������������������������������ 139
ibm_db.active���������������������������������������������������������������������������������������������������������������������� 139
ibm_db.autocommit������������������������������������������������������������������������������������������������������������ 140
ibm_db.bind_param������������������������������������������������������������������������������������������������������������ 141
ibm_db.callproc������������������������������������������������������������������������������������������������������������������� 143
ibm_db.client_info��������������������������������������������������������������������������������������������������������������� 144
ibm_db.close����������������������������������������������������������������������������������������������������������������������� 146
ibm_db.column_privileges�������������������������������������������������������������������������������������������������� 147
ibm_db.columns������������������������������������������������������������������������������������������������������������������ 148
ibm_db.commit������������������������������������������������������������������������������������������������������������������� 151
ibm_db.conn_error�������������������������������������������������������������������������������������������������������������� 152
ibm_db.conn_errormsg������������������������������������������������������������������������������������������������������� 153
ibm_db.connect������������������������������������������������������������������������������������������������������������������� 154
ibm_db.createdb����������������������������������������������������������������������������������������������������������������� 157
ibm_db.createdbNX������������������������������������������������������������������������������������������������������������� 158
ibm_db.cursor_type������������������������������������������������������������������������������������������������������������ 159
ibm_db.dropdb�������������������������������������������������������������������������������������������������������������������� 160
ibm_db.exec_immediate����������������������������������������������������������������������������������������������������� 160
ibm_db.execute������������������������������������������������������������������������������������������������������������������� 162

ix
Table of Contents

ibm_db.execute_many�������������������������������������������������������������������������������������������������������� 163
ibm_db.fetch_tuple������������������������������������������������������������������������������������������������������������� 165
ibm_db.fetch_assoc������������������������������������������������������������������������������������������������������������ 166
ibm_db.fetch_both�������������������������������������������������������������������������������������������������������������� 167
ibm_db.fetch_row��������������������������������������������������������������������������������������������������������������� 168
ibm_db.field_display_size��������������������������������������������������������������������������������������������������� 169
ibm_db.field_name������������������������������������������������������������������������������������������������������������� 169
ibm_db.field_num��������������������������������������������������������������������������������������������������������������� 170
ibm_db.field_precision�������������������������������������������������������������������������������������������������������� 172
ibm_db.field_scale�������������������������������������������������������������������������������������������������������������� 173
ibm_db.field_type���������������������������������������������������������������������������������������������������������������� 174
ibm_db.field_width������������������������������������������������������������������������������������������������������������� 174
ibm_db.foreign_keys����������������������������������������������������������������������������������������������������������� 175
ibm_db.free_result�������������������������������������������������������������������������������������������������������������� 178
ibm_db.free_stmt���������������������������������������������������������������������������������������������������������������� 179
ibm_db.get_option�������������������������������������������������������������������������������������������������������������� 179
ibm_db.next_result������������������������������������������������������������������������������������������������������������� 181
ibm_db.num_fields�������������������������������������������������������������������������������������������������������������� 183
ibm_db.num_rows�������������������������������������������������������������������������������������������������������������� 184
ibm_db.pconnect����������������������������������������������������������������������������������������������������������������� 185
ibm_db.prepare������������������������������������������������������������������������������������������������������������������� 187
ibm_db.primary_keys���������������������������������������������������������������������������������������������������������� 188
ibm_db.procedure_columns������������������������������������������������������������������������������������������������ 190
ibm_db.procedures������������������������������������������������������������������������������������������������������������� 192
ibm_db.recreatedb�������������������������������������������������������������������������������������������������������������� 194
ibm_db.result���������������������������������������������������������������������������������������������������������������������� 194
ibm_db.rollback������������������������������������������������������������������������������������������������������������������� 195
bm_db.server_info�������������������������������������������������������������������������������������������������������������� 196
ibm_db.set_option��������������������������������������������������������������������������������������������������������������� 199
ibm_db.special_columns���������������������������������������������������������������������������������������������������� 201

x
Table of Contents

ibm_db.statistics����������������������������������������������������������������������������������������������������������������� 203
ibm_db.stmt_error�������������������������������������������������������������������������������������������������������������� 206
ibm_db.stmt_errormsg������������������������������������������������������������������������������������������������������� 206
ibm_db.table_privileges������������������������������������������������������������������������������������������������������ 207
ibm_db.tables���������������������������������������������������������������������������������������������������������������������� 209
Summary���������������������������������������������������������������������������������������������������������������������������������� 210

Index��������������������������������������������������������������������������������������������������������������������� 211

xi
About the Author
W. David Ashley is a technical writer for Skillsoft where he
specializes in open source, particularly Linux. As a member
of the Linux Fedora documentation team, he recently led
the Libvirt project documentation and wrote the Python
programs included with it. He has developed in 20 different
programming languages during his 30 years as a software
developer and IT consultant, including more than 18 years at
IBM and 12 years with American Airlines.

xiii
About the Technical Reviewer
Sourav Bhattacharjee is a senior technical member for
Oracle Cloud Infrastructure. As part of IBM Watson Health
Lab, he has developed many scalable systems, published a
few research papers, and applied some patents to USPTO. He
has an ample amount of hands-on experience in Python,
Java, machine learning, and many database systems. He
earned his master’s degree from the Indian Institute of
Technology, Kharagpur, India.

xv
CHAPTER 1

Introduction to Db2
Welcome to this introduction to Db2. Since you are here, you are likely looking for a
place to get started with Db2. Our hope is that this book will be that first step you are
looking for. This book is meant to be an introduction to the Db2 environment and to
the Python interface. The first half of the book will cover Db2 at a level that should be of
interest to both administrators and programmers. It will cover many aspects of Db2 that
you will make use of in either of the two roles. The last half of the book will concentrate
on using the Python programming language to interface to Db2. While mainly oriented
to programmers, administrators will find it useful as well for some of their everyday
tasks.
Db2 has a long history and is the first relational database implementation. It was
first proposed by Edgar Frank “Ted” Codd in a paper titled “A Relational Model of Data
for Large Shared Data Banks” in 1969 while working at the IBM’s San Jose Research
Laboratory in California. In the next four years, IBM researchers worked to create a
system based on the principles described in Codd’s paper (called System R). During
this time, it became obvious that a new language was needed to interact with the new
system. Codd wrote a new paper “A Data Base Sublanguage Founded on Relational
Calculus,” which became the basis for the new language called DSL/Alpha. This quickly
went through some name changes but eventually ended up being called SQL, short for
Structured Query Language.
Eventually there was an effort in the 1970s to port DSL/Alpha to the 370 mainframe
environment. It was renamed to Database 2 in 1982. The next year it was made available
to the public with another name change, DB2. This was a limited release but was highly
regarded by the customers that evaluated it. The customers actually pushed IBM to
deliver DB2 to a wider set of customers. IBM was somewhat reluctant because they were
trying to hold on to their IMS/DB market share. But eventually the customers won out,
and DB2 began to spread to other platforms including OS/2, AIX/RS6000, and Windows.

1
© W. David Ashley 2021
W. D. Ashley, Foundation Db2 and Python, https://doi.org/10.1007/978-1-4842-6942-8_1
Chapter 1 Introduction to Db2

Over the next two decades, the product went through a number of name changes
and several platform code bases. Recently with the release of version 11.1, IBM
rebranded the entire product line and brought the code bases into a small number of
code bases. The following set of products are now the standard offerings:

• Db2 (formerly DB2 LUW)

• Db2 for z/OS (formerly DB2 for z/OS)

• Db2 Hosted (formerly DB2 on Cloud)

• Db2 on Cloud (formerly dashDB for Transactions)

• Db2 Event Store (a new in-memory database for event-driven


transaction processing)

• Db2 Warehouse on Cloud (formerly dashDB)

• Db2 Warehouse (formerly dashDB Local)

• IBM Integrated Analytics System (a new system platform that


combines analytic performance and functionality of the IBM
PureData System with IBM Netezza)

The code bases for today’s Db2 offerings share a common code base that makes
porting the code to another hardware/software platform a relatively easy process. The
SQL code base has been standardized so that it is the same across all platforms, making
moving to another platform an easy task from a programming perspective.
There is also a current movement in programming applications with embedded
SQL. These types of applications are very hard to port from one platform to another
without major code modifications. Instead, IBM is moving (where possible) to an API
that can be called to process SQL statements and make use of programming language
variables for values to be added to the SQL statement. This is the methodology used for
Python that we will explore later in this book.
In the past, Db2 was considered to be too large for most applications. But as personal
computers have become a lot more powerful and then databases used by even a small
number of people have become extremely large, Db2 has become more attractive in the
management of this data. Also, the pricing model of Db2 on these platforms has become
more competitive. So if you need the performance and the ability to manage large
amounts of data, Db2 can be a very attractive product.

2
Chapter 1 Introduction to Db2

What Is a Relational Database?


A relational database is actually hard to define because no relational database system in
today’s market actually implements E. F. Codd’s 12 rules defining the relational model.
Instead, commercial relational databases implement only about seven to nine of those
rules. This is enough to make their products commercially useful without the burden of
implementing the other rules. In fact, the other rules would not be useful to most database
users, so it is questionable whether or not they will ever be implemented in a commercial
product. In fact, most commercial database vendors actually extend the relational model
by adding entities that are not really tables, such as BLOBs (which we will discuss later).

The Relational Model


Roughly, relational databases implement the concept of entities expressed as rows
and columns. A customer records table would have a single row representing a single
customer. The columns (or tuples) of the table would contain attributes of that customer.
Each column would contain a single attribute and would have a defined data type for
restricting the type of information it can contain. A typical customer address table might
be implemented as shown in Table 1-1.

Table 1-1. Sample Customer Table


CUSTNO FNAME LNAME STREET STATE ZIP

000000001 Bugs Bunny 1201 Looney Lane CA 77777


000000002 Marvin Martian 2342 Mars Avenue MA 30143
000000003 Daffy Duck 5462 Termite Terrace CA 77745
000000004 Elmer Fudd 23 Hunter Cove CA 77732

This table is a good example because it shows the kind of relationships that can
be expressed in a relational database. The CUSTNO column holds a unique customer
number for each customer (or row). The column is the primary key for this table. The
FNAME and LNAME identify the first and last names of the customer. The STREET is
the address to be used for billing the customer. The STATE column is the U.S. state the
address is located. The ZIP column identifies the mailing zip code.

3
Chapter 1 Introduction to Db2

D
 omains
Domains (or attributes) limit the data in a column to a particular type. For instance, the
data might be an integer of a particular type, a monetary value, a character string of fixed
or variable length, a date or time value, or some other domain that has been defined.

K
 eys and Indexes
The STATE column in Table 1-1 is a foreign key – that is, a primary key in another table.
A rule can be set up so that when you add a new row to the customer table, the system
checks that the value in your proposed STATE field is a valid entry in the state table. If it is
not, the record will not be inserted, and an error will be generated. Keys are also known
as indexes. When you create a primary key in a table, a special index table is created to
hold valid keys. This table is like any other table in the system; it can be queried, added
to, and deleted from. Thus, all the valid keys can be inserted into and maintained in the
table, and it can be maintained just like any other table. Only the special rules make the
index table special.

R
 elationships
All of this shows just some of the kinds of relationships that can be created (or derived)
to properly maintain a set of tables. There are probably other kinds of customer tables
that could be created like a table to maintain customer credit ratings, a customer
shipping address table, a customer contacts table, etc. All of these are specialized entities
that have relationships with the other customer tables. This is what a relational database
is all about. The idea is to express a relationship with data organized so the data is only
stored where needed and hopefully only one time.
Relationships allow the user to create customized reports that can express custom
views of the data from the database. At first glance these reports may look like they have
no relation to the data contained in the database, but they can give insights to the data
not easily possible by other means.

4
Chapter 1 Introduction to Db2

Transactions
Another aspect of relational databases is support for transactions. This means providing
a locking mechanism that can allow data to be modified while others are reading the
data or modifying other data at the same time. This is known as the ACID test, which is
an acronym for the following tests:

• Atomicity defines all the elements that make up a complete database


transaction. This might make up one or more SQL statements.
• Consistency defines the rules for maintaining data points in the
correct state after a transaction. This is usually done through an SQL
statement such as COMMIT or ROLLBACK.

• Isolation keeps the effect of a transaction invisible to others until


it is committed, to avoid confusion. This refers to the ability of the
database to keep multiple changes to a database from corrupting the
integrity of the database.

• Durability ensures that data changes become permanent once the


transaction is committed. This is done by ensuring that writes are
made to all modified tables prior to committing the transaction.

Stored Procedures
A relational database typically implements stored procedures. These are programs
stored in the database to implement special processing under several circumstances.
These procedures usually involve business logic that needs to be implemented the
same across all the database users. In many cases, only the stored procedure has the
proper permissions to modify, insert, delete, or access the data being manipulated. This
prevents users from making modifications to the data if they do not have the correct
permissions.

5
Chapter 1 Introduction to Db2

Constraints
Another property of relational databases are constraints. These make it possible to
further restrict an attribute. For instance, a column might be defined as an integer. But
the range of numbers might actually need to be constrained to a particular range. This is
what a constraint provides.
Constraints can come in many forms and are used for a number of purposes. They
are stored within the database and used when adding or modifying data.

Normalization
Normalization is another attribute of a relational database. This design process reduces
the number of nonatomic values and the duplication of data throughout the database,
thus preventing anomalies and loss of integrity. The process is known as normalization.
The process of normalization is performed by the administrator, usually during the
creation of the database. Users are not usually involved in this activity.

SQL
Within the first few years of creating the first relational database, it became very obvious
that something was needed to actually manipulate the data in a relational database. The
language was invented at IBM by Donald D. Chamberlin and Raymond F. Boyce in the
early 1970s. It was originally known as SEQUEL, but that name was trademarked and it
was changed to Structured Query Language (SQL). SQL was later standardized by ANSI,
but each relational database product extended it as needed to conform to their product
or hardware platform.
SQL is divided into four categories of statements:

• Data Definition Language (DDL)

• Data Query Language (DQL)

• Data Control Language (DCL)


• Data Manipulation Language (DML)

Most SQL books spend most of their resources on the DML part of SQL, but the other
parts are just as important, especially to the database administrator.

6
Chapter 1 Introduction to Db2

Data Definition Language (DDL)


The Data Definition Language subset consists of the CREATE, DROP, ALTER, and
TRUNCATE statements. These statements manipulate (or reorganize) the data in the
database.
The CREATE statement creates new entities in the database. This can include
tables, indexes, views, and procedures. Many database systems include character sets,
collations, transactions, and assertions as well.
The DROP statement removes entities from the database. These include all the
entities that can be created with the CREATE statement. Some databases include the
users as an entity that can be dropped.
The ALTER statement can alter an existing entity, such as adding a new column to a
table.
The TRUNCATE statement removes all data from a table or index. It is much faster
than the DELETE SQL statement.

Data Query Language (DQL)


The Data Query Language subset consists of only the SELECT statement. This is used for
all queries of information in the database. The syntax of the SELECT statement will be
covered later in Chapter 7.

Data Control Language (DCL)


The Data Control Language subset consists of the GRANT and REVOKE statements.
These statements grant and revoke privileges to and from users of the database.
The database system specifies the type of privileges that a user can be granted.
Some database systems, such as SQLite, depend on the operating system’s privilege
mechanism and thus do not support the GRANT and REVOKE statements.

Data Manipulation Language (DML)


The Data Manipulation Language subset consists of the INSERT, UPDATE, and DELETE
statements. Some systems also include the SELECT statement in this subset, but since
SELECT does not make changes to the data, this would seem an odd place to place the
SELECT statement.

7
Chapter 1 Introduction to Db2

The INSERT statement adds new rows into a table. This new data may also
automatically alter the content of a view of the table data.
The UPDATE statement alters one or more rows in an existing table (and any view
dependent on the table). The statement does not add new rows to a table, it only alters
existing data.
The DELETE statement removes rows from a table (and any view dependent on the
table).

The ibm_db Project


The ibm_db project was started sometime in 2007 with the first code commits to
GitHub on February 9, 2008. The project was a joint effort between IBM and the Python
community to create a programming interface to Db2 and Informix from Python.
Informix had been purchased by IBM around this same time, and this was part of the
project to integrate Informix into the Db2 line of products. Since then the project has
undergone steady progress with some recent major fixes.
By establishing the project on GitHub, it was thought that with community support
the project would not only improve with time but would benefit from community
participation. This has proven to be the case with many community volunteers
contributing to the project throughout the project lifetime.
Over time, the ibm_db_dbi module was added to the project, and new projects
were introduced based on the ibm_db module to support other Python projects. These
projects include ibm_db_django, ibm_db_alembic, and ibm_db_sa.
For more information, see Chapter 8.

S
 ummary
This chapter has presented some of the basic concepts that make up a relational
database and the SQL that supports it. This information is common to almost all
relational databases.

8
CHAPTER 2

Installing Db2
This chapter covers installing Db2 on Linux and Windows. Both environments use
the same installer to perform installation and creation of userids and permissions.
The installation process is pretty easy and straightforward, but there are a number of
questions you might have before you start the installation that are not answered by the
install program. We will try to cover those questions as we come to them.

My Development Environment


My development environment is not your typical Windows home system. It consists of
two Linux servers, one Windows client, and two Linux client workstations. The Linux
servers are not typical workstations but actual dedicated servers that are usually used in
small business settings. I will try to describe each system so you have some idea of what
my environment is like.
The first system is a Lenovo ThinkSystem ST250 server with four 2 TB drives
installed. It has 32 GB of memory and a six-core Xeon CPU. This is my main server and
hosts all my files. It is visible to the Internet through my firewall via the Apache Web
Server. The operating system is Fedora 32. It is also hosting my Windows files via Samba
as well as hosting a number of Virtual Machines (VMs) via libvirt. This is the system that
hosts my main Db2 databases.
The second system is Lenovo ThinkStation P320 with 256 GB of SSD and a 1 TB drive
with 32 GB of memory and a six-core/six-thread Xeon CPU. This is my development
server and actually changes configuration about twice a year. It currently runs CentOS
Linux 8.2. This machine also hosts my test Db2 environment.
The third machine is my Windows 10 workstation. It is connected to the first Linux
system via a shared drive (Samba) on the server. This is where I do most of my writing as
well as Windows development and testing.

9
© W. David Ashley 2021
W. D. Ashley, Foundation Db2 and Python, https://doi.org/10.1007/978-1-4842-6942-8_2
Chapter 2 Installing Db2

The fourth system is a Lenovo ThinkCentre M920 with 256 GB of SSD and a 1 TB
drive with 16 GB of memory. It has an i7 CPU. This is my development workstation
where I test all my Linux development and remote access to servers. The operating
system is Fedora 32.
The fifth system is a Lenovo ThinkPad T580 with 256 GB of SSD, 16 GB of memory,
and an i7 CPU. It runs Fedora 32 and usually serves as my travel machine but also as an
auxiliary test device.

I nstallation Prerequisites
Before you even start the Db2 install program, there are a number of prerequisites that
need to be met before you can successfully install everything. Our install environment
for this book is CentOS 8.2. The prerequisites for this OS should be the same for RHEL
8.2, but may be different for other Linux environments. Windows environments have
their own prerequisites, but they are similar to the Linux prerequisites.
The first thing we need is the Db2 install program and support files. To get the free
version of Db2, just go to

www.ibm.com/account/reg/us-en/signup?formid=urx-33669

This gets you to the account registration page. You can either log in with an existing
userid or create a new one. After you are logged in, the website will present you a
preferences page. Select your preferences and select the Continue button. On the
next web page, select the download you need. Unless you need them, just ignore the
pureScale support downloads. Once the download is complete, move the downloaded
file to a safe location and then unzip or untar it. This will create a new subdirectory in the
current directory with the install files exploded inside.

Caution! Do not move the downloaded file to the directory you intend to place
databases. You will have a mess of files on your hands when you create your first
database.

At the time this book was written, the version of Db2 that was available was version
11.5.4. Older free versions of Db2 are not made available when IBM introduces a new
version.

10
Chapter 2 Installing Db2

Now that you have your evaluation version of Db2, you are probably wondering what
its limitations are. The evaluation version does not ever expire. It has no limitation on
the number of databases. The one and only limitation is the total size of all databases,
currently limited to 100 GB. This is more than enough space to perform your own
evaluation of the software unless you are trying to test a very large system. If that is your
plan, IBM will be more than glad to help with a production version of Db2 and even
some engineers.
At this point, we are now ready to find out what our prerequisites are. To do this,
simply run the install program. This program is located in the untarred subdirectory
we previously created. The expanded directory is named server_dec. To run the install
program, just run the following commands:

$ cd server_dec
$ ./db2setup

If prerequisites are needed by Db2, the install program will list them and then exit.
Be sure to read everything output by the install program. On our CentOS 8.2 system, it
listed two prerequisites:

• libpam.so* (32-bit)

• libstdc++.so.6 (32-bit)

“Wait. Why does Db2 need 32-bit libraries?” you ask. Db2 is a collection of a bunch
of products, some of which have not changed in a decade or more. Rather than possibly
introducing new bugs into the system, IBM has chosen to keep the older version of
some of these products. Thus, these prerequisite libraries are needed to support those
products.
Use your system’s software installer to install the prerequisite packages. For Linux,
this will be either the dnf or yum programs for RPM-based packages. Once you have the
prerequisites installed, you are ready to proceed to really installing Db2. But before we
do that, we need to do a little planning.

Planning the Db2 Install


Before we get to the install, we need to understand what the result of the install will be so
we can plan ahead and avoid surprises afterward. There are two major points to cover in
this area.

11
Chapter 2 Installing Db2

The first result of the install is that you will have two new userids created on the
target machine. The default names of these IDs are db2inst1 and db2fenc1. The
db2inst1 ID will have some files stored in its home directory, and you need to make
sure there is enough space to accommodate them. There are a limited number of files,
but you should make sure you are prepared for them. The db2fenc1 ID only has a very
limited number of files stored in its home directory.
The second result is not really a result of the install. It is more a default that is set
as a result of the install. This item is the location where databases will be installed. The
default location for databases is in the db2inst1 home directory! THIS IS NOT WHERE
YOU WANT TO STORE DATABASES! You are probably going to store them on a different
drive/location. We will discuss this point again after we cover the install process and
before we create the sample database.
There are also a few minor points that are a result of the install, but we will cover
those as we get to them.

I nstalling Db2
We are now ready to install Db2. This process must be done by the root (on Linux)
or admin (on Windows) user, so start by becoming the root/admin user. On Windows
you will need to log out and log back in as the admin user. On Linux just perform the
following command:

$ su - root

After this you need to change to the directory where you placed the expanded files of
the Db2 download package. Then run the db2setup install package:

$ cd server_dec
$ ./db2setup

If you have installed all the prerequisites, this should show you the Welcome page
(Figure 2-1).

12
Chapter 2 Installing Db2

Figure 2-1. Db2 Install Welcome Page


After you click the New Install button, the next window appears to allow you to select
a product to install (Figure 2-2).

Figure 2-2. Db2 Install Choose a Product Page


13
Chapter 2 Installing Db2

This page has a number of products that you can select. The first product is Db2
Server, and this is the product we will install. The second product is Db2 with pureScale,
which we did not download. The third product is Db2 Connect Server, which is used
for distributed databases. The fourth product is Db2 Connect Client, which is used for
building compiled code that includes SQL statements. The last product is Db2 Runtime
Client, which is used for running compiled code from the Db2 Connect Client version.
At this point you should select the top item in the list, Db2 Server Editions. The
version number may be different if you downloaded a newer version of Db2. The other
selections are not important at this point in time. After clicking the Next button, the next
page will appear.

Figure 2-3. Db2 Install Configuration Page

14
Chapter 2 Installing Db2

The Configuration page allows you to select either a Typical or a Custom install. At
this point, select a Typical install. You must also check the box to agree to the IBM terms
before you proceed. When finished, click the Next button and the next page shown in
Figure 2-4 will appear.

Figure 2-4. Db2 Install Instance Owner Page

You can check out the Custom install option for some items you may want to change.
Most users just perform a Typical install.
The Instance Owner page allows you to create the account that will own the first
instance of Db2 and the group name of the new user. Just leave the db2inst1 information
as it appears and then enter the password and confirmation for the new account. This
is the account that will have new files installed in its home directory. When you have
entered in the new password and confirmed it for the account, click Next and the page
shown in Figure 2-5 will be displayed.

15
Chapter 2 Installing Db2

Figure 2-5. Db2 Install Fenced User Page

The db2fenc1 user will run user-defined functions and stored procedures outside the
address space of the Db2 database. Enter the db2fenc1 password and confirm it. When
finished, click Next which will dosplay the page in Figure 2-6.

16
Chapter 2 Installing Db2

Figure 2-6. Db2 Install Response File and Summary Page

The next page is the Response File and Summary page. The response file is a part of
the installation set of files, so it does not have to be created. Click the Finish button to
start the install of Db2 as shown in Figure 2-7.

17
Chapter 2 Installing Db2

Figure 2-7. Db2 Install Progress Page


The two status bars keep track of the progress of the installation of all components.
When finished, you will automatically be taken to next page (Figure 2-8).

Figure 2-8. Db2 Install Finished Page


18
Chapter 2 Installing Db2

When the installation is complete, this is the page that will be shown. You can choose
to review the post-install steps, review the log file, or just click the Finish button to exit
the install.
At this point, the Db2 installation steps are complete, and we are ready to look at the
post-install tasks that will need to be considered.

Note With Ubuntu Linux, the Db2 instance owner and fenced user that are
created by the Db2 install are assigned the Dash shell by default. This can cause
scripts that begin with the line #!/bin/bash to stop working. If you want to use Bash
as the default shell when you log into either of these users, execute the command
csh -s /bin/bash username (where username is the name of the Db2 instance
owner or fenced user) before doing anything else.

Db2 Post-install Tasks


There are a few tasks that need to be performed after the Db2 install has completed:

1. Try to log into the db2fenc1 userid using the password you set
from the db2setup command. Correct any problems you may find.

2. Try to log into the db2inst1 userid using the password you set
from the db2setup command. Correct any problems you may
find. You should note the location of the sqllib directory and its
contents as you may need to become familiar with them. This may
or may not be a link to another location.

3. If you do not want databases stored in the db2inst1 directory


tree, then now is the time to change that location. Log in as the
db2inst1 userid and run the following command:

$ db2 update dbm cfg using dftdbpath /your/db/path

This will update the path in the Db2 configuration so that all databases belonging to
db2inst1 will be stored in the new location.
At this point, we are now finished with our post-install tasks, and we are ready to
proceed to installing the sample database.

19
Chapter 2 Installing Db2

Installing the Db2 Sample Database


Db2 comes with a default database named sample. This database, although small, is
comprehensive enough to show how a database should be constructed and is useful for
demonstrating an array of possible SQL commands. This book uses the sample database
extensively for demonstrating Db2 concepts, SQL usage, and Python programming
examples.
To install the sample database, follow these steps.
Log into the db2inst1 userid:

$ su - db2inst1

The Db2 database instance needs to be started, so that is our next step:

$ db2start

Now we can actually install the sample database. This command will take a few
minutes, so be patient:

$ db2sampl -force -sql

The -force option ensures that if the database is already installed, it will be overlaid
with the default content. The -sql option tells Db2 not to install the XML data into the
database.
Now we can connect to the database and test it:

$ db2 connect to sample

If successful, you should see some output that looks something like this:

  Database Connection Information

Database server        = DB2/LINUXX8664 11.5.0.0


SQL authorization ID   = DB2INST1
Local database alias   = SAMPLE

Now we can run a test SQL command to query the database:

$ db2 "select * from department"

20
Chapter 2 Installing Db2

Important Be sure to include quotes around the text that follows db2. If the
quotes are omitted, the operating system will try to process the command
incorrectly, and an error will result.

You should see a total of 14 records displayed if everything works as expected. We


can now terminate our connection to the database with the following command:

$ db2 connect reset

If successful, our connection to the database is now terminated.

Summary
This chapter has presented the steps to installing and verifying the installation of Db2.
Be sure to read the Caution, Note, and Important sections presented in the chapter as
they have valuable information for some operating systems.

21
CHAPTER 3

Db2 Management
The management of Db2 is not an easy affair. It is not like any open source relational
database. It is a little like Oracle, but there are differences. This is because Db2 for Linux,
Unix, and Windows is a lot like maintaining a mainframe database, just on a smaller and
easier scale. While there are many tools to help manage the Db2 environment contained
in the product itself, the key to proper management is understanding the architecture
of the product and how it manages hardware resources. Without this knowledge, it
is easy to get into trouble and overextend the hardware of the machine. With proper
management, a single piece of hardware can manage either a few large databases or
many smaller ones without stretching the resources on the machine too far.
This chapter will give you enough knowledge so that you can set up the Db2
environment properly without overburdening you with facts that have few, if any,
consequences.

D
 b2 Instances
Instances are the top-level architectural structure in Db2. When you installed Db2, you
created the first Db2 Instance, which had the default name of db2inst1. This is also the
Instance that holds the sample database we installed in the previous chapter.
Any number of databases can be installed in an Instance. But it is possible to
overload an Instance and cause performance problems. This is because Db2 sets aside
a fixed number of processes and threads for each Instance, and it does not dynamically
add or remove resources during the active lifetime of an Instance. You must stop the
instance, adjust the number of resources, and then restart the Instance. Of course, the
databases owned by the Instance will have to be stopped and restarted as well. That
is the key: stopping and starting an Instance can have impacts on availability and the
contained databases. If you are continually stopping and restarting Instances, your
users will not be very happy with your management skills.

23
© W. David Ashley 2021
W. D. Ashley, Foundation Db2 and Python, https://doi.org/10.1007/978-1-4842-6942-8_3
Chapter 3 Db2 Management

Instances are easy to describe, but harder to justify. You have to know some history
to be able to properly understand where they came from as well as why they even exist.
Instances were first introduced just after the year 2000. Their justification came as the
databases on multi-drive machines started to become very large. They were so large
and had so many users that the network interface became a bottleneck in processing
database requests. It seems that the machines now far outpaced the network in being
able to handle database requests. Db2 had plenty of idle time while it waited on the
network interface to process the next request. This was in the days when the fastest
common networks were only 10 MB capacity. What was needed was a way to divide the
databases among multiple network ports. Thus, instances were born.
Instances were not only given their own network port, they were also given their
own processes, threads, and semaphores. Thus, if a database crashed for any reason, it
would only disrupt the databases within the containing Instance. The other Instances
and databases would continue to run normally while the database administrator dealt
with the downed Instance.
Instances can be used in many ways by the database administrator, but the most
common use is to prevent network port congestion. The second most common use is to
separate sets of databases from each other for security purposes. Since each Instance
has its own set of administrators and users, this helps to enforce security between
Instances.
One other attribute of an instance is that it has no physical presence on your disk
system, or at least not much of one. It is very hard to point to a place in the disk system
and say, “This is where an instance resides.” There are a few files created with the
instance, but these do not describe where the instance is. You should just think of it as
a logical entity and not a physical one.
There is a set of commands that administrators can use to manage instances. The
following are some example Db2 commands that manage Instances.

Note All the commands used in this chapter can be run in one of two ways. They
can be run by logging into the db2inst1 user, or they can be run by using the
sudo db2inst1 prefix to the command.

24
Chapter 3 Db2 Management

db2ilist
This command lists all the Instances that are available on a system:

db2ilist

Output:

db2inst1
db2inst2
db2inst3

Instance Environment Commands


These commands are useful to work with arrangement of instances in the Db2 CLI.
The following command obtains the current instance:

db2 get instance

Output:

The current database manager instance is : db2inst1

To start or stop the database manager of an instance on Db2 UDB, the following
command is executed for the current instance:

set db2instance=db2inst1

Using this command, you can start an Instance. Before this, you need to run “set
instance”:

db2start

Output:

SQL1063N DB2START processing was successful

This command is used to stop the current Instance:

db2stop

Output:

SQL1064N DB2STOP processing was successful.

25
Chapter 3 Db2 Management

Creating an Instance
Let us see how to create a new Instance.
If you want to create a new Instance, you need to log in with root. An Instance ID is
not a root ID or a root name.
Here are the steps to create a new Instance:
Step 1: Create an operating system user for an Instance.

useradd -u <ID> -g <group name> -m -d <user location> <user name> -p <password>

Example:

useradd -u 1000 -g db2iadm1 -m -d /home/db2inst2 db2inst2 -p db2inst2

Step 2: Go to the Db2 Instance directory as a root user to create a new Instance.
Location:

cd /opt/ibm/db2/v10.1/instance

Step 3: Create an instance using the following syntax.

./db2icrt -s ese -u <inst id> <instance name>

Example:

./db2icrt -s ese -u db2inst2 db2inst2

Output:

DBI1446I The db2icrt command is running, please wait.


....
.....
DBI1070I Program db2icrt completed successfully.

Arranging a Communication Port and Host for an Instance


Edit the /etc/services file and add the port number. In the following syntax, “inst_name”
indicates the Instance name, and “inst_port” indicates the port number of the
Instance:

db2c_<inst name> <inst_port>/tcp

26
Chapter 3 Db2 Management

Example:

sudo - db2c_db2inst2 50001/tcp

Syntax 1: Update configuration with the service name. In the following syntax,
“svcename” indicates the Instance service name, and “inst_name” indicates the
Instance name.

db2 update database manager configuration using svcename db2c_&<inst_name>

Example 1: Updating DBM configuration with variable svcename with value “db2c_
db2inst2” for Instance “db2inst2”

db2 update database manager configuration using svcename db2c_db2inst2

Output,:

DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed


successfully.

Syntax 2: Set the “tcpip” communication protocol for the current Instance.

db2set DB2COMM=tcpip

Syntax 3: Stop and start the current Instance to get updated values from database
manager configuration.

db2stop
db2start

Updating an Instance
You can update an instance using the following command,:

db2iupdt

This command is used to update the Instance within the same version release.
Before executing this command, you need to stop the Instance database manager using
the “db2stop” command. The following syntax “inst_name” indicates the previously
released or installed Db2 server Instance name, which you want to update to a newly
released or installed Db2 server version.

27
Chapter 3 Db2 Management

Syntax 1: To update an instance in normal mode

db2iupdt <inst_name>

Example:

./db2iupdt db2inst2

Syntax 2: To update an Instance in debugging mode

db2iupdt -D <inst_name>

Example:

db2iupdt -D db2inst2

Upgrading an Instance
You can upgrade an instance from a previous version of a Db2 copy to a newly installed
version of a Db2 copy:

db2iupgrade

On a Linux or UNIX system, this command is located in the DB2DIR/instance


directory. In the following syntax, “inst_name” indicates the previous version of the Db2
Instance, and “inst_username” indicates the currently installed version of a Db2 copy
for the Instance user:

db2iupgrade -d -k -u <inst_username> <inst_name>

Example:

db2iupgrade -d -k -u db2inst2 db2inst2

Command parameters:

-d : Turns debugging mode on

-k : Keeps the pre-upgrade Instance type if it is supported in the


Db2 copy, from which you are running this command

If you are using the super user (su) on Linux for the db2iupgrade command, you
must issue the “su” command with the “-” option.

28
Chapter 3 Db2 Management

Dropping an Instance
You can drop or delete an instance, which was created by the “db2icrt” command:

db2idrop

On Linux and UNIX operating systems, this command is located in the DB2_
installation_folder/instance directory.
Syntax:

db2idrop -u <inst_username> <inst_name>

Example:

./db2idrop -u db2inst2 db2inst2

Using Other Commands with an Instance


The following is the command to find out which Db2 instance we are working on now.
Syntax 1:

db2 get instance

Output:

The current database manager instance is:  db2inst1

Syntax 2:

db2pd -inst | head -2

Example:

db2pd -inst | head -2

Output:

Instance db2inst1 uses 64 bits and DB2 code release SQL10010

Syntax 3:

db2 select inst_name from sysibmadm.env_inst_info

29
Chapter 3 Db2 Management

Example:

db2 select inst_name from sysibmadm.env_inst_info

Output:

INST_NAME  --------------------------------------
db2inst1
1 record(s) selected.

Syntax 4:

db2set db2instdef=<inst_name> -g

Example:

db2set db2instdef=db2inst2 -g

Databases
Databases are the next level of manageable objects in Db2. Every database is contained
inside of a single Instance, but there can be multiple databases contained inside an
Instance.
The database has no communications interface to the outside world. Instead,
the Instance controls communications between each contained database and the
outside world. This reduces the redundancy of the communication code when multiple
databases are owned by the Instance.
A database contains a large group of objects that together make up both the
administration and the storage locations for the database. A partial list of these objects is
as follows:

• The database catalogs

• The global deadlock files

• Tablespace information

• Storage group control files

• Temporary tablespaces

• Global configuration file

30
Chapter 3 Db2 Management

• History files

• Logging files

• Automated storage containers

Each one of these objects will be discussed at length in the following sections and in
Chapter 4 later in this book.

Db2 Catalog Views


The Db2 catalog tables are used to hold information about all the database tables, views,
indexes, and other entities contained in the database. Each database contains its own
catalog tables, and they are not shared with any other database.
The catalog tables are extremely important and should only be updated by the Db2
system. To that end, you can no longer even read the catalog tables. Instead, the system
creates a read-only view of each table. To read a catalog table, you must use the view; you
cannot read the catalog tables directly.
The current 11.x release of Db2 contains 140 catalog views plus 9 other views
containing statistical information. Many of these views contain very useful information
for both administrators and advanced users. Thus, the catalog views are read-only for
everyone who has control privileges to that portion of the database. For instance, if a
user has no read permissions on a database table, information on that table will not be
available to the user in catalog views.
For more detailed information on catalog views, see the IBM documentation at

www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.
doc/doc/r0008443.html

This documentation details the complete layout of each view with additional
information about all possible values for many columns.

Locking Event Monitor


New in Db2 11 is the locking event monitor. This replaces the deprecated deadlock
event monitor. The old monitor had many deficiencies, which caused some deadlocks
to not be detected. The new logging event monitor is much better at detecting deadlocks
as they occur instead of waiting for some kind of deadlock timeout. It provides a more
robust system to users and administrators.
31
Chapter 3 Db2 Management

Deadlock information can be written to two different database tables, but it is always
in binary format. Choosing between these two tables can be tricky, so careful thought
should be given to your choice. By using SQL to query the table, the system will interpret
the binary data and translate to a supported language such as English.
Enabling the locking event monitor is automatic when you execute the CREATE
statement for it. The following statement will enable the locking event monitor:

create event monitor for locking

When a deadlock is detected, the following information is collected in the event log:

• The lock that resulted in the event

• The application holding the lock that resulted in the lock event

• The applications that were waiting for or requesting the lock that
resulted in the lock event

• What the applications were doing during the lock event

T ablespace Information
Tablespaces are used to contain database tables. When a database is created, three
tablespaces are created automatically. The first tablespace, SYSCATSPACE, contains the
database catalog and views. The second tablespace, USERSPACE1, is the default space
used to hold the database tables. The third, TEMPSPACE1, is used to hold temporary
tables for query results. All these tablespaces are created by default in the location
specified when the Db2 system was installed.
There is a lot of information on tablespaces, and this book has an entire chapter
devoted to that topic. See Chapter 4 for more information.
The basic command for obtaining tablespace information is as follows:

mon_get_tablespace (tblsp_name, member)

If the tblsp_name is NULL or an empty string, then all tablespaces will be returned.
The member specifies the member number of the tablespace. If it is –1, the current
member information is returned. If it is –2, then all member information is returned. If
NULL is specified, it is the same as specifying –1.

32
Chapter 3 Db2 Management

Storage Group Control Files


Storage groups are an intermediate level between the database and its tablespaces. You
use storage groups to group together tablespaces. This allows a whole set of tablespaces
to reside in the same location. A database can have many storage groups spread across
any number of disk devices.
Unless you specify otherwise, a default storage group is created when you create a
database. All of the tablespaces will reside in that storage group. See Chapter 4 for more
information.

Global Configuration File


The global configuration file is created by an administrator. It is used to set backup
procedures for the Db2 system. See the IBM documentation for more information.

H
 istory Files
History files are instance specific and are stored in the same place as the instance
information. They contain some global information on the instance like the last start and
stop times and other sometimes useful data. The number of these files can change from
release to release, so refer to your release-specific documentation for more information.

L ogging Files
The logging files are specific to a database and store information logged by the Db2
system. The number and types of the files will be specific to your database configuration.

Automated Storage Containers


These are discussed at length in Chapter 4. A default storage container is created when a
database is created.

33
Random documents with unrelated
content Scribd suggests to you:
had spent their long lives in hearing and telling of one thing—the
glory, the authority, the divinity of the Church, and the overwhelming
conclusiveness of her consent. All who did not hear the Church
were, according to them, lost. Even when, in preparing the way for
the change of base which they had foreseen before leaving home,
some of them had appeared to throw tradition altogether overboard,
it was only in order to substitute for it the general consent of the
Church. Which of us would have dared to tell devout Roman
Catholics that their own bishops, when once in Rome under the
terror of the Pontiff and the Jesuits, would disavow the consent of
the Catholic Church, and say that without it the word of a single man
was quite as good? They may now attempt to explain the words "not
by consent of the Church," as meaning something small; or even to
say that Popes ever and always formally disclaimed the necessity of
her consent. The world must leave them to do so; but they know, as
well as we do, that had we said that their bishops would of a sudden
put words like these into the creed, they would have called us
calumniators. Yet what came to pass?
That came to pass which had often been hinted as necessary by the
zealots during the Council, but had always been looked upon as
impossible by most men of the minority, although a few had openly
said that in such a Council nothing was impossible. Another
Spaniard, when he gave his conditional vote, had proposed that the
words of the Decree which said, "The definitions of the Roman
Pontiff are of themselves irreformable," should be amended so as to
read, "The definitions of the Roman Pontiff are of themselves, and
not by consent of the Church, irreformable." Vitelleschi says that no
information was given as to the authority at whose suggestion these
metamorphic words were approved by the committee, but approved
by the committee they were. So, without any opportunity of debate,
the Under Secretary cried, "The amendment under number 152,
having been modified, is accepted by the committee"; and reading
it, he added, "Let those who are in favour of accepting it stand up."
The great majority stood up. "Let those who are against accepting it
stand up." "About thirty" stood up.[461] Thus were those ancient
men called upon in their episcopal robes to extinguish the light of
that lamp to which they had ministered oil all the days of their lives.
They obeyed like soldiers, and the old, old light of a catholic consent
was quenched for ever. Many of the eighty-eight were absent, and
knew not of this new, swift, and crowning victory of the guild over
the hierarchy.
Done in a moment! the Romish bishops had effaced from their law,
and from their rule of faith, the consent of the Catholic Church! Talk
of revolutions, of hasty parliamentary votes, of the sudden impulse
of a mob; but where in history is there an instance of breaking with
a long and loud resounding past, in such haste, and so irrevocably;
irrevocably, not by the ordinary law which entails the consequences
of an act upon the future, but irrevocably by the form and intent of
the action itself? We know, alas! what these bishops are capable of
representing; but it is for the unborn to judge the men who did that
act and then faced round, saying that they changed nothing. And
these men are to teach the human species the art of conserving all
that they have "inherited and proved"! The Church of the Popes had
long ceased, in the eye of Protestants, to have a claim to catholicity.
Now, however, in the eye of Liberal Catholics she explicitly rejected
catholicity by statutory and irreformable law. They saw her contract
herself to the sect of one man and his retainers, to a religion made
up of faith in one man, his inner light, and his faits accomplis.
The slow but irresistible operation of principles had at last worked
out its ultimate issue. Liberal Catholics were the first to see that the
religion of the Pope had now really ceased to be Catholic, or even
national, or indeed municipal—that it had in fact become only
palatial. They at once named it the religion of the Vatican. They did
not so soon admit that the principle of one city church—not the
mother, and not a model—being the mistress of all others, and
practically the fountain of their faith, contained in itself the germ of
all that had now come to fruit.
The sitting which began with deeds so very solemn ended in another
way. For once the poor Pope had been exposed to the plague of
pamphlets in the Holy City. It is pathetic to read the wailing over the
destiny that subjected so holy a being to this in addition to his other
"martyrdoms," "Calvaries," "crucifixions," and such like words, to win
a tear. Many of the vexatious writings were in Latin. Thus if they had
the additional bitterness of being the work often of bishops, always
of priests, they still had the veil of a dead language. Not a few,
however, had been written in living tongues. Two of the latter, which
cut dreadfully deep, were in French—What is going on in the
Council? and The Last Hour of the Council. We are now to see how
these are dealt with. It is announced by the First President that a
certain protest will be distributed. So papers are handed round.
During this process the Under-Secretary calls out, Let the Fathers
take notice that the sitting is not over! Then from the pulpit, in the
name of the Presidents, he reads a protest against false reports in
general, and the two pamphlets in particular. They were stinking
calumnies and shameful lies—putidissimæ calumniæ ... probosa
mendacia. The Italians and Spaniards, who could not have read
them, cried, "We condemn them." The minority cried, "We do not
condemn them." The President called upon those who did condemn
them to stand up. Sambin says that so few remained seated that, to
avoid exposing them to humiliation, the contrary was not put.
Among these men Friedrich names Rauscher and Schwarzenberg.
Two copies of the condemnation had been handed to every one of
the bishops. The President now read a request that each would
return one of them signed with his own name. This trap, however,
was not successful. Haynald said that if the Presidents would
translate La Dernière Heure into Latin, he and the rest of the
Hungarians would be able to see if it was as bad as their Eminences
had said it was.[462] The Acta Sanctæ Sedis make no mention of any
demur, but notes that many prelates said, "Willingly, with all my
heart, yes, even to blood!" But why giving bad names to two
pamphleteers should call forth such heroic resolutions is not obvious.
Thus did an Œcumenical Council spend its last legislative moment in
recording a condemnation of two pamphlets which obviously the
bulk of those who gave sentence could not have read. The
presentation to every man personally of the two papers, and the call
to sign, coming from the chair, was a symptom not calculated to
dissipate certain fears that had got abroad among the minority. It
was reported that if they dared to give an adverse vote in the public
session, two papers would be immediately presented to them, the
one being a subscription to the dogma, the other being the
resignation of their sees. If they did not sign the first, they must sign
the second. They knew that in case they refused to sign both, they
were within the walls of Rome. And suppose a bishop to have signed
his resignation and then to find himself in the hands of the Papal
police! And men liable even to the suspicion of such menaces were
free "judges and legislators!"
So ended the last of the General Congregations, being the eighty-
sixth since the beginning. It will be ever memorable—a monument of
despatch and versatility. It renounced, as lights in doctrine, antiquity,
catholicity, and the consent of the Church, and it denounced two
French pamphlets, and gave to Ce Qui se Passe au Concile and La
Dernière Heure du Concile an immortality in the formal Acts of that
assembly denied to all the petitions, suggestions, deliberations, and
votes of the whole hierarchy of the Roman Catholic Church in their
fourscore and six anxious and pregnant sittings in General
Congregation.
For awhile the protest against these pamphlets, of which the
wording is named by Vitelleschi as a sample of the violent language
common in the Roman bureaux at the time, is actually printed
among the Acts of the Council, those Acts contain not a word of the
votes, proposals, or discussions of the General Congregations; not a
hint of all the protests put in by the minority, not a hint of the voting
in the great Congregation on July 13, or, in fact, of anything that
could give a knowledge of the processes, or of any other results
than the lists of committees and the formulated Decrees. By
processes we do not mean the ceremonial ones, for they are briefly
described, but the legislative and deliberative ones, which are
entirely omitted. The Bulls of the Pope and the Decrees of the
Presidents as to procedure are printed; but no action of the bishops.
When what has passed through the hands of the bishops becomes a
Papal constitution, it of course appears. As to the historians, they
indeed do give the voting on July 13; but we believe that not one of
those who wrote by or under authority gives one of the documents
of the protesting bishops, from the beginning of the Council to the
end, or any indication of where they may be found. Vitelleschi tells
how, on this same day, Cardinal Rauscher himself made a last
desperate effort to impress the immovable Pope, and was received
with scant courtesy.
That Saturday night a number of downcast old men, each with more
or less of a retinue, took leave of Rome. Some went by the desolate
way to Civitá Vecchia. On reaching that city, and beginning to
breathe the free air of the sea, they might well wonder how long the
red, white, and blue flag would warn away the red, white, and
green; how long the eldest daughter of the Church would help the
autocrat to impose his obscure tyranny on this threadbare patch of
land,—a land whereof the natural lot was neither poverty nor
dependence upon the foreigner. Some of them took the less desolate
way towards the North. In the clear July night they passed by Monte
Rotondo, with Mentana not far off. When would Garibaldi be heard
of anew? Or would the next dash at Rome be left to Garibaldi?
Spoleto, Terni, and other places lost in 1860, would suggest the
question: Will Ireland and Belgium find men for new crusades, and if
so, will they be more successful? The lamps of Perugia, high on the
hill, would recall tales of slaughter under Pius IX. Perhaps the
prelates had not heard them, or had said that they were all lies. All
of the Frenchman, or of the German, in their hearts would be drawn
in one direction; all of the Papist in another. The Frenchman would
naturally say, He who has repaid the restoration of twenty years ago,
and the support given since then, by deliberate insult of the greatest
names of the Gallican dead, by coarse offences against every man of
mark among the French living that dared to speak a dissentient
word, and by the ostentatious abrogation of all the Gallican liberties,
deserves not that the flag of France should longer shelter his policy.
The German would naturally say, The attempt to undo the unity of
the Fatherland, and once more to expose us through division to the
incursions, the burnings, and the plunderings of the French, is no
less than diabolical; and he that aims at breaking up Germany for
the sake of weakening Italy, should be left to his deserts. But in such
men, after all, the Frenchman or the German represented but the
human instincts, not the drilled, trained thoughts, and the
unchangeably moulded habits. The German, or the Frenchman,
represented the boy, but the Papist represented the man. "The
weakening of the individual will in the priest," of which Vitelleschi
speaks, as one of the secrets of that mysterious zeal to-day for
things which were esteemed untrue yesterday, is scarcely more
striking than is the weakening of national sympathy, except when
the interests of the Papacy are supposed to be connected with those
of the nation.
We may close this chapter with one specimen more of the practical
preaching for the establishment of the new moral order, of the real
Christian civilization, which the scribes of the Court had kept under
the eyes of all who sought, in their pages, for tidings of the great
things which the Council was doing. Our last specimen was that of
an English youth: this is that of a French one. Bravely fighting his
gun at Monte Rotondo, fell young Bernard Quatrebarbes, the son of
a Breton marquis, mortally wounded. When the victors of Mentana
delivered the prisoners, no less than four cousins gathered around
the pallet of the wounded Bernard. At Rome he was joined by his
father, his sister, and other female relations. The day after his arrival
in the city, his humble room in the hospital having been entered by
Pius IX, "radiant with sovereign sweetness," as the writer expresses
it, Bernard was naturally in ecstasy at such an august apparition.
The Pope desiring to see the wound of his crusader, and making the
sign of the cross over it, said, "God will bless thee, my friend, as I
bless thee." The Marquis announced to his wife the departure of her
boy in three words, "Bernard in Paradise." "Words," exclaims the
author, unconsciously signalizing the fall of Rome from Christian
hope—"Words worthy of the primitive Christians." Ay, but, thank
God, primitive Christians before saying over their dead "in Paradise"
instead of "in Purgatory," did not wait till one fell fighting for the
royalty of a bishop! Over the fisher drowned with his nets, over the
mother who died in childbirth, they rejoiced with the joy of hope
eternal. It was for later, darker ages to drag them back again into a
dim region where a crowd of intervening patrons and all manner of
priestly spells came between them and the bosom of a Father,
between them and the home where all the brothers meet.
Maria Sophia, ex-Queen of Naples, came so often to the bedside of
the dying Bernard, that our narrator says she almost seemed to have
taken up her abode in the hospital, and sometimes she was moved
to tears. By that bedside also did her husband say to the Marquis,
"How noble is your son!" To the Marquis also wrote another
expectant exile, the Count of Chambord, saying that he admired "the
short but bright career of Bernard, and his marvellous end." It was
the Colonel of Bernard that told the father of his departure, and in
these words: "I have another patron in heaven." But above all when
the news was conveyed to the Pope, he said: "Bernard Quatrebarbes
is a saint in heaven." At home in Brittany, while the corpse lay in the
chapel of the château, the people flocked around the bier; but it was
"more to invoke the departed than to pray for him." The new Hermit
who preaches the new crusade thus concludes his memoir:—

The death of Bernard Quatrebarbes, who sacrificed to God


youth, fortune, and pleasure, a tranquil life and the joys of
home, in order to march in the defence of the truth, of virtue, of
the Church, will awaken the drowsy soul of more than one
young cavalier. Bernard is already a martyr, and he will be an
apostle.[463]

FOOTNOTES:
[442] Friedberg, 145; Quirinus, 788.
[443] See Protest with signatures. Doc., ii. 400-403.
[444] Apologia, p. 327.
[445] Quirinus, p. 792. The Acta Sanctæ Sedis does not think it
worth while to count;—"fifty or thereabouts," "quinquaginta
circiter patribus dissentientibus" (vi. p. 31).
[446] Le Con. du Vat. et le Mouvement Anti-Infallibiliste, pp. 6-10.
[447] Friedrich, p. 405.
[448] Quirinus, p. 771.
[449] Ibid., p. 772.
[450] Ibid., p. 773.
[451] Civiltá, VII. xi. 362. Acta Sanctæ Sedis has the same
numbers.
[452] Friedrich, 406.
[453] When, in 1860, writing Italy in Transition, I read, on the
recommendation of an Italian gentleman, a book by a well-known
writer professing to describe the interior life of the Vatican; but
found it too low to allow me even to allude to it, much less to
quote it. What was my surprise when, a year or so later, appeared
the work of Liverani, to find this very book—which even now I do
not care to name—cited with that of About and of others, as a
work the substantial accuracy of which the learned Domestic
Prelate and Protonotary of the Holy See could not deny.
[454] Quirinus, p. 801. This astounding assertion does not rest
upon the sole authority of Quirinus. Friedrich, in reporting the
sayings of the Archbishop of Munich to the Faculty of Theology in
that city on his return, gives the same assertion as repeated by
his Grace. It had been a favourite theory with official writers that
Quirinus was Friedrich, but as the latter left Rome in May, and
Quirinus continued to write to the last, that theory had dropped
out of sight. It is a curious coincidence in the present case that
nearly all the incidents of this interview, mentioned by Quirinus
writing in Rome on July 19, were repeated by Archbishop Scherr
in Munich to the Faculty two days later. The substantial
agreement of the two accounts is quite as great as that in several
other cases which have induced men like Hergenröther to argue
that Friedrich and Quirinus were one. The agreement is such as
would be found between two practised writers hearing an account
from the same eyewitness, or from two or three eyewitnesses,
and immediately writing down what they had heard. Friedrich, p.
408 ff.
[455] An instance of the effect of perfect knowledge of Rome by
personal residence, on the style of expression and description,
may be seen in Mr. T.A. Trollope's interesting book, The Papal
Conclaves, as compared with the unreal and conventional forms
kept up by Englishmen who know neither the language nor the
spirit of the people. Some of the latter, ever since the days of the
Tracts for the Times, provoke smiles, and have gradually been
acquiring for our country a reputation very unlike the old
reputation of England for strong common sense, love of reality,
and contempt for shows and fables.
[456] Friedrich, p. 409.
[457] Quirinus, p. 803; also the words of Archbishop Scherr, as
quoted in Tagebuch, p. 409.
[458] Related by Archbishop Scherr to the Theological Faculty at
Munich. Friedrich, pp. 409, 410.
[459] Quirinus, p, 804. See the Draft in Doc. ad Illus., ii. pp. 317,
318,—"Quod antiquitus Apostolica Sedes et Romana cum cæteris
tenet perseveranter ecclesia."
[460] Acta Sanctæ Sedis, p. 33.
[461] The Acta Sanctæ Sedis does not even profess to count
exactly,—"about thirty" (triginta circiter).
[462] Quirinus, pp. 806-7.
[463] Civiltá, VII. ix. 542-48 and 664-70.

CHAPTER VIII
Grief of M. Veuillot—Final Deputation and Protest.

SUNDAY, July 17, was rather more of a fast than of a feast for M.
Veuillot. He says, "War and oppositions are cruel clouds." Bad as
were the rumours of war, those of "rebellion" among the bishops
were still worse. It had evidently become known that the minority
were not to be cowed into gracing the public solemnity with their
compulsory Placet. It was even rumoured that the bishops would go
into the open session and disturb the solemnity by saying Non placet
—ay, M. Veuillot had heard, by shouting it and outrageously
repeating it in the face of the Pope.[464] While nothing was more
desirable than that, to prove the freedom of the Council, two or
three should say Non placet, any serious number doing so would be
detestable. The refusal of the non-contents to vote at all would be
only one degree less bad. M. Veuillot, however, discovered that many
whose departure, "or rather desertion," had been reported were still
really in Rome. But, on the other hand, he saw carriages at the
doors of leaders of the "tormenting and tormented" Opposition; at
those of the Archbishops of Paris and Lyons, and of Cardinals
Rauscher and Matthieu. Even the Via Frattina was visited to note the
symptoms at the door of Maret. After night-fall, Veuillot cries, "Many
are gone, and many more are going in the morning. They will really
absent themselves. I cannot help thinking of a caricature. It
represented some seditious fellows in a scare, who said, 'Now is the
moment to show ourselves; let us hide!'"
As the noontide of that July Sunday blazed upon the Vatican, a
deputation had entered the presence chamber, headed by Darboy
and Simor, Primate of Hungary. They came to make one last attempt
to procure the prorogation of the Council without the promulgation
of the dogma. Their only answer was the old Non possumus. Then
the last of the luckless series of protests was solemnly delivered.
They had not heart enough to fight, and had too much conscience to
submit. So they took the middle course, and spoiled for ever the
pretext of moral unanimity except the dead unanimity of form. Their
fears, or their views of unity and reverence would not allow them in
public to withstand the Pope. He had justly calculated the effect
upon them of throne and tiara, with the fear of possible degradation.
They had not, perhaps, sufficiently calculated what might have been
the effect on him of honest men standing up one after another in
their appointed place, and saying before all the Churches, as a wiser
than they had done of a better than he, that he was to be blamed.
They would have exposed, it is true, Pope Pius IX to a temporary
check, yet they might have saved the Papacy from an irrevocable
error. But in proportion as the Papacy had become weak in
producing conviction, it had concentrated its strength on the means
of producing submission. Its success in that art was now to be its
own punishment. No Protestant had expected any effectual
resistance from men trained as Romish bishops. Any real tenacity of
conscience shown during the Council, was due to nobler influences
spread abroad in countries where the ascendancy of Rome is not
complete. There is, to our mode of thinking, something not merely
incongruous and grotesque, but a great deal worse, in putting
forward the paltry plea of personal offence, or personal
consideration, when the matter in hand is a dogma that is to mould
the religion of millions for ever. The fact that these prelates do put
forward such a notion countenances the statements often made
about men giving as the reason for their votes that they could not
refuse the Holy Father or hurt his feelings. Vitelleschi thinks that the
fear of being required to resign their Sees or subscribe the dogma
was one of the elements in determining the minority to leave Rome
before the definition (p. 212). If so, seeing them escape from that
dilemma would be one of the causes of the mortification shown by
the majority, as expressed by Veuillot. We give the last of the
protests in full[465]:—

Most Blessed Father, in the Congregation held on the 13th of


this month we gave our votes upon the proposed Decree of the
first dogmatic constitution of the Church of Christ.
It is known to your Holiness that there were eighty-eight
Fathers, who, pressed by conscience and moved by love of the
Holy Church, gave their votes in the words Non placet, that
sixty-two others voted in the words Placet juxta modum, and
that, moreover, about seventy were absent from the Council and
abstained from voting. To these are to be added a number who,
from infirmity or other serious reasons, have returned to their
dioceses.
In this manner, our votes have been made known to your
Holiness and to the whole world, and it has been made evident
by how many bishops our opinion is approved; and thus have
we discharged our office and duty.
From the time above stated, nothing has occurred to change
our judgment; but, on the contrary, several things have been
added, and those exceedingly serious, which have strengthened
us in our purpose.
Confirming, then, by this document our votes, we have
determined to abstain from the public session to be held on the
18th. That filial piety and reverence, which lately brought our
deputies to the feet of your Holiness do not permit us openly,
and in the Father's face, to say Non placet in a case so closely
concerning the person of your Holiness.
And, indeed, the votes that would be given in the public session
could only repeat those already given in the Congregation.
We, therefore, return to our flocks without delay, for after so
long an absence we are much needed on account of the
rumours of war, and especially on account of the great spiritual
necessities. We return grieving that, because of the sad juncture
of circumstances, even peace and tranquillity of conscience is
disturbed among the faithful.
Meanwhile, commending with all our hearts the Church of God,
and your Holiness, to the grace and protection of our Lord Jesus
Christ, we are of your Holiness the most devoted and most
obedient sons.

Leaving, then, in the hands of the Pope this solemn confirmation of


a belief registered by a formidable array of bishops, that he ought
not to be proclaimed as the infallible representative of God, they
turned their backs on the palace which had witnessed their many
humiliations. Their allusion to the things which had been added since
the 13th as being "exceedingly serious," is another of the many
witnesses out of their own mouths against their subsequent
statements. Their clear statement that did they vote in the session it
could only be to repeat their former vote, seals with the seal of
deliberate misrepresentation many solemn assertions since that day
made under mitres.
It was a grief to the soul of M. Veuillot to learn that the Ambassador
of France had graced with his presence the departure of Darboy. De
Banneville had accompanied the Archbishop to the station, escorted
by Mérode, with Monsignor Vecchiotti, and Father Trullet. The
recalcitrant Archbishop was even placed in "a kind of carriage of
honour"; a fact which reminded the Argus of the Univers that a
certain bishop had said, We go away conquerors, but we leave some
wounded on the field. "This fine carriage seemed to me an
ambulance."[466] Thus, poor Darboy took his way towards the
storm-cloud, blackening behind the hills, in the after clap of which
he alone of all the host was to find a bloody grave.
The Monday morning dawned heavily over Rome. As the eyes of the
last portion of the fleeing minority were sadly tracing the outlines of
the hills on the upper course of the Tiber, while those of the first
portion were tracing the forms of the outlying Alps and a few were
watching morn as it spread over the waves of the Mediterranean, a
Pope for the first time rose in Rome with the consciousness that ere
sunset he would be infallible, not only in fact, but also in law. His
less happy prececessors had claimed that crown, but never had
received it. Now he was about, with the consent of the Church, to
put on the power to be infallible for ever, "without the consent of the
Church." Had ever diplomacy won such a victory? had ever an
oligarchy so completely signed itself away? Tell him that the
temporal power was of no spiritual value! But could all that have
been accomplished except within the walls of a strong city? As Pius
IX looked from the Papal apartments across the Tiber, the Pincian
was gloomy, and the Sabine Hills were hid in clouds under a
threatening sun. But he would remember the day of his taking
possession, and how gloom had turned to rainbow; the day of the
return from Gaeta, and how the sun had opened from the west at
the right moment; above all, the day of "The Immaculate," and how
the sun had seemed glad of the sight. True, the dutiful luminary had
failed on the opening day of the Council, but the Jesuit Fathers had
written that the solemnity would be brilliant at its close, and that the
city would blaze with triumph, as Ephesus had done in the year 431.
And was not the throne so placed in the Council Hall, that, all being
propitious, the beams would fall as they had done on the day of the
Immaculate; and surely the Virgin would not fail to send them. At all
events, it was certain that he would lie down that night not only the
Pope of the Immaculate, but the Pope of the Infallible—the first
human being in the records of the world to whom a number of the
creatures of God had deliberately given the right of telling to them
and to their succeeding generations what they were to believe for
ever and ever. The deifying of an emperor, either in the plains of
Babylon or in the temples of Rome, was a little thing as compared
with the apotheosis now about to be performed. The dogmas of the
emperor were not to be eternal on earth, though he might cause
himself to be decreed immortal in heaven. The word "apotheosis"
was perfectly natural to the pen of Vitelleschi, or of any other Liberal
Catholic who dared to speak what he thought. But it is nevertheless
true that deification among the heathen, whether ancient or
modern, involved little exaltation compared with that now to be
given to the Bishop of Rome. A Theseus or a Rama, an Antinous or
an Augustus, had a lowly part in ruling eternal destinies compared
with that to be now assigned to the Count and Priest Mastai-Ferretti.
The monasteries and nunneries sent forth a contingent, as on the
opening day; but where were the proud vehicles and the pressing
throngs? Vitelleschi says that two or three houses in the city were
decorated. How dead was the indifference denoted by such
language on an occasion absolutely unprecedented, cannot be
conveyed to the minds of those who do not know what the people of
a southern city can do when they really mean to decorate. As the
places for spectators in the Hall filled up, it was whispered from one
to another, "No crowned heads." An Infanta of Portugal was the lone
flower of royalty
"Where once a garden smiled."
Even ambassadors failed. France, the eldest daughter, was not there.
Spain, the Catholic, was not there. Portugal, the faithful, was not
there. Austria, the apostolic, was not there. Bavaria was not there.
Poland was dead. Italy was alive again, but her heart and hope were
elsewhere. Belgium and Holland had each sent a consul, the one to
welcome infallibility, with its constitution condemned by the Church,
the other with its heresy. Vitelleschi mentions a representative of the
Principality of Monaco. The Giornale di Roma is not so worldly
minded as to specify any state, but says that members of the
diplomatic corps were present.[467]
About nine o'clock the Cardinals, Patriarchs, Archbishops, Bishops,
Abbots, and Generals, all in red, began to stream in. Five hundred
and thirty-five seats were soon occupied. It thus appeared that there
were some two hundred less than at the opening. About twenty had
died.[468] Several were ill. Some, in Rome, were absent from
disclination to attend.[469] Of the minority only two now changed
sides. Of these, one was a demonstrative Oppositionist—Landriot, of
Rheims. This conspicuous absence of the minority was a
disappointment and a humiliation, though it was nothing more. Even
the Acta Sanctæ Sedis says that its effect was traceable on the
countenances of the Fathers. They grieved for the obstinacy of their
brethren. Indeed, in the Congregation where the vote was taken,
some, with clasped hands, had implored their friends to give up their
false opinion at last. Still the conqueror had his triumph, though he
had not the satisfaction of seeing the captives follow in his train. It
was Cæsar without Vercingetorix. It would have been a proud
moment for the resident Cardinals had Rauscher and Schwarzenberg
made Vienna and Prague bow down to Rome. Had the sturdy
Darboy done homage for Paris, it would have been a sign to the
Curia that the new world of the Jesuit seers was at last actually
above the horizon. The readers of M. Veuillot can well imagine into
what ecstasies he would have fallen, and with what dithyrambs his
pages would have detonated, had his ears been permitted to hear
Dupanloup pronounce his Placet. This was not to be. Those bishops
were not the men to stand up in their places and contend; yet were
they not so thoroughly beaten as ostentatiously to submit. Their
paper confirmation of their legislative vote came like an impertinent
parley to tease the conquerors. What ought to have been either a
combat or a fête? was neither. It was a ceremonial of which even
the Civiltá quotes its description from the Giornale di Roma, while M.
Veuillot himself is too much affected to write more than a few lines—
as if silence was the vestment which his strong emotions were wont
to put on. In his after touches he often speaks of the glory of the
dogma, but we do not remember that he ever alludes to the glory of
that day. The Protestant Fromman, whom we have not been
accustomed to quote, though very glad to consult, called the
ceremony tedious; but that was unpardonable.
The Pope did not enter on this occasion, as on former ones, between
Antonelli and Mertel, but between Grassellini and Mertel. Had
Antonelli, because of having failed to give his vote in the
Congregation, lost his wonted place on the day when the fruit was to
be plucked? The hall and city, according to Vitelleschi, "wore a cold
and severe aspect." December 8 seemed to have dropped its mantle
on July 18. Perhaps, however, ere the moment of promulgation
arrived, the Roman azure would be in the ascendant, and hearts
would be gladdened at the right time. Indeed, the Acta Sanctæ
Sedis, in contradiction to all profane authors, states that just before
the Pope uttered his sentence the gloom somewhat cleared up. It
does not attempt to say that the sun shone.
After the preparatory ceremonies, Fessler and Valenziani approached
the throne. The Secretary handed the constitution Pastor Eternus to
the Pontiff, with its chapters and its canons making a new Church, if
ever a new constitution made a new corps, and making, as Pius IX
hoped, the commencement of a new era for the kingdoms of this
world, all of which, with the glory of them, had been by some one
promised to him after this day. That constitution professed to give to
him, or rather to recognize as inhering in him, authority over all
territories on earth, and over all those actions of man that possessed
any moral character. Over the entire sphere of human accountability
henceforth and for ever it was for him to reign as should seem to
him right. Valenziani ascended the desk, and read out the title of the
Decree. He then sat down, and while the sky grew blacker, the
house darker, and the hearts of men more heavy with an impression
of something terrible, he read chapter after chapter, until at last he
reached the close, and the house echoed back his cadence, with the
word of the Pope's self-written doom, Irreformable,—"The definitions
of the Roman Pontiff are of themselves, and not by consent of the
Church, irreformable."
After a moment's pause came the sealing Canon, "If any shall
presume to contradict this our definition, let him be anathema."
The reader ceased. The storm alone was speaking. For a moment no
human tone disturbed the air. But memory was repeating two terrific
words, and imagination kept saying that the winds were whispering.
Irreformable! Anathema!
Valenziani rose, and sending his voice athwart the gloom, said,
"Most Reverend Fathers, are the Decrees and Canons contained in
this Constitution agreed to?"
Upon this he left the desk, and Jacobini, the Sub-Secretary,
ascending it, called out the name of Cardinal Mattei, who was absent
from old age. He then called "Constantine, Bishop of Porto"; and
Cardinal Patrizi, rising, and taking off his mitre, said, Placet. The
voice near the throne made the darkening hall to echo Placet, and
the voice near the door repeated the echo, Placet. Then the
scrutineers recorded the vote. Cardinal Amat was next called, and
his Placet and some five or six others sounded harmoniously in the
deepening gloom. Jacobini then called Frederick Joseph, Archbishop
of Prague. The princely priest who from the age of thirty-three had
worn the purple, and who was to represent the house of
Schwarzenberg and the Church of Bohemia,—that Church imposed
by burnings and by blood,—responded not. There was a moment's
pause and a sense of a want. Absent, cried the voice near the
throne. Absent, replied the voice near the door; and the influences
from without were seconded by a damping influence from within.
The next name was that of Cardinal Corsi, a man of repute for piety,
who was well known to be averse to the definition. According to
Vitelleschi, he and the other dissentient Cardinals drew their scarlet
hats over their eyes and remained silent. But they wore mitres, not
hats. Of the rest, Quirinus asserts that, besides the Cardinal Vicar,
Patrizi, only two put into their Placet spirit enough to stand up, and
they were Bonaparte and Panebianco. Fourth after Corsi came the
name of the senior French Cardinal. "James, Archbishop of
Besançon," cried Jacobini; but Cardinal Mathieu did not respond.
Absent, cried the official voice. Absent, echoed the fellow official.
Even France seemed failing. Thrice had the tranquillizing Placet
cheered the still deepening shadows, when Jacobini came to the
notable name of "Joseph Othmar, Archbishop of Vienna." But
Rauscher was far away, and once more did the thunderous air thrill
with the depressing sound, Absent. Now followed a successive roll of
more than twelve Placets, and then came the name of Philip,
Archbishop of Bologna. All watched Cardinal Guidi, who pronounced
a Placet. The Pope closely eyed him, and when the creature
delivered his judgment before earth and heaven in favour of the
dogma which just one month previously he had, in the same place,
solemnly proposed to lay under an anathema, his royal master said,
"Poor man!" or, as others report it, "Good man!" but Vitelleschi
remarks that in Italian they might both mean the same thing. To
Guidi succeeded two staunch Placets, from Bonnechose and Cullen,
but next was called Gustavus of Santa Maria Traspontina. Eyes
looked for another prince-priest who represented the house of
Hohenlohe and the feelings of Bavaria, but there was no response.
Hohenlohe, like Rauscher and Schwarzenberg, was absent.
After the list of Cardinals was exhausted, the patriarchal Sees were
called. Two Sees were especially connected with the tradition of
Peter. After men of genuine Italian name, Antici-Mattei and Ballerini,
had, for Constantinople and for Alexandria, answered Placet, was
called the name of Antioch. Its Patriarch was named Jusseff, and the
call evoked no response; so Antioch, the See of Peter, and absent,
the sign of disapprobation, were set in men's minds together. Of
course the Roman Valerga said Placet for Jerusalem. Then came the
other city connected with the life of Peter, and when Audu, whose
secret experience after his first audacity in venturing to differ from
Pius IX was known to all, was called to answer for Babylon, all
expected that he would have been overcome like Guidi. But no.
Oriental servility did not equal Rome, and so the reply made for
Babylon was Absent. La Dernière Heure du Concile asserts that as
Audu had been sent for by the Pope, so had Jusseff been sent for by
the authorities of the Propaganda, "to know by what right he dared
to bear testimony to the belief of the East without having previously
submitted his speech to revision" (p. 4). Next came the primatial
Sees. Where was the Primate of France? Where the Primate of
Hungary? They, too, among the absent. And of the Archbishops,
where were those of Paris, of Milan, and of Munich? Where the
Nestor of the English-speaking group, John of Tuam? These were
painful deficiencies. Still, in numbers if not in influence the roll of
Placets from among the Archbishops presented a very large majority.
Among the bishops, the first name called was that of the very aged
Losanna, of Biella, one of the staunchest opponents. So the first
reply, though for an Italian bishop, was Absent. Then a flow of
Placets, frequently chequered by an Absent. In all, says Vitelleschi,
nearly one hundred and fifty bishops were absent, many of them
men who held the most illustrious Sees.[470] The Acta Sanctæ Sedis
confesses to one hundred and twelve absentees from among those
called; which number did not, of course, include men who had
already obtained leave of absence. The number who were present
was five hundred and thirty-five. In this whole list the uniform
responses were either Placet or Absent till the name of the Bishop of
Caizzo, a Neapolitan, was called. The official reported his vote as
Placet. Caizzo raised his voice and loudly uttered Non placet. Then,
again, to the end, Placet followed Placet, alternating with the voice
of the rolling thunder. Finally was called Fitzgerald of little Rock in
America. Thinking that he alone of the Fallibilists was present, he
had begged not to be brought forward; but now that another bishop
had given a negative vote he responded, Non placet.[471] This set
tongues agoing. It was roundly asserted that the appearance of the
Neapolitan and the American had been arranged for, in order to give
an air of freedom. Vitelleschi naturally thinks that it is needless to
search so far for motives. Yet, the Civiltá makes a display of these
two votes, saying that without them it would have been alleged that
the Fathers were not free. It tells of a correspondent of some of the
"bad" papers who on hearing the first Non placet was evidently
annoyed, and being asked by a friend the cause of that annoyance
said, "This negative vote spoils all for us."[472] The Civiltá quotes a
description of how Riccio, the Neapolitan, after the definition, went
down on his knees and said, Credo, I believe; and how Fitzgerald
pressed his episcopal cross to his breast and said, "Now I believe.
Now do I also firmly believe."[473] When all the votes had been
delivered, the scrutineers and notaries brought to the Secretary of
the Council a statement of the result. The Secretary, followed by the
scrutineers and notaries, advanced to the steps of the throne. There
they all knelt down. The Secretary ascended the steps and read,
"Blessed Father, the Decrees and Canons are agreed to by all the
Fathers, two excepted."
All this time the gloom was deep. "The voice of the Lord" again and
again pealed over the city. Thunderbolts more than once struck close
to the Cathedral. Some glass in the windows of the apse just behind
the throne was broken. Some, according to Jesuit writers, said,
Providence is proclaiming the downfall of Gallicanism. Some,
according to the Acta Sanctæ Sedis, said, The demon is disturbed,
the storm shows that this does not please him. This interpretation
would seem to have been that of the learned editor, for he adds,
"The thunderbolts which Jupiter of the Pagans forged did the city no
harm." Many said, God is installing the new Moses upon the new
Sinai. This, at least with those who wrote, was evidently the
prevailing interpretation.
The moment had come. Now was to be spoken the word so oft
invoked in apostrophe, apologue, and prayer,—the word for which
many had pictured a universe in chaos as waiting in blind but
agonizing throes,—the word which so-called Christian journals and
Christian ministers had, times unnumbered, described as the voice of
God pronouncing the creative fiat, Let there be light. But where was
the sun? According to many promises and to careful arrangements,
he was at this moment to pour down upon the Lawgiver while
announcing to all people, nations, and languages, the new law that
changeth not, a radiance which would be as if angels were unfolding
their wings above him and around. But the sun would not! The
priest, in his conflict with chaos, was, at the supreme moment, left
to the light of his own beloved wax candles. That light which his
taste tells him adorns the house of God in the eye of day, and
teaches celestial truths to immortal men, became at last of real use.
The High Priest arose from his throne. All hearts stood still. He
thought, and they thought, that he was about to proclaim himself
unerring. But had not the wine been spirited away between the cup
and the lip? The faults incident to composing in a committee, and
those incident to amending in a hurry, were both embedded in the
Decree. All it said of the infallibility of the Pope was derived and
comparative; he is possessed of that infallibility with which the divine
Redeemer willed that His Church should be endowed in defining
doctrine regarding faith and morals. History had conquered dogma
here as it had done in the chapter on authority. The declaration was
not that the Church was as infallible as the Pope, which would have
been the order had the historical consciousness traced the infallibility
of the Church as derived from that of the Pope. The declaration was
that the Pope was as infallible as the Church,—a proof that his
infallibility was derived from hers, and that historical consciousness
dictated that order. This comparative infallibility was all that was
ascribed to the Pope in this artful but unskilful composition. But to
what, according to the same article, did the infallibility of the Church
amount? This was rendered by the wording the point all essential,
and the standard beyond which infallibility could not extend. The
Church was in the same article, and in words the most positive, dealt
with as a body the consent of which was not to be taken into
account. All, therefore, which the great Word had brought forth, was
a declaration that the Pope was as infallible as a body whose
consent was not to be taken into account. The world may be well
content. The crafty were caught in their own gin when they
renounced the consent of the Church. When men have long and
successfully argued in a circle, it is a delicate thing all at once, in the
heat of a July day, to break one half of the circle, and then to
declare that the other half is perfectly round, quite as round as the
whole. Historically, the infallibility of the Church was first of all made
the base and measure of that of the Pope. Then, diplomatically, the
infallibility of the Church was reduced to a nullity. This nullity, by
inexorable logic, falls back on all the infallibilities grown out of it, or
measured by it. So the Decree is chaos in spite of all the candles.
But on one point it speaks not comparatively but positively. Without
comparison with anything on earth or above the earth, the Decrees
of the Pope are pronounced irreformable. That is the one and the
only indisputable result.
The aspirant after infallibility stood, about, as he imagined, to
pronounce the word. He opened his lips, and by the candlelight
read: "The Decrees and Canons contained in the constitution just
read are agreed to by all the Fathers, two excepted. We, therefore,
with the approval of the Sacred Council, confirm these and those as
now read, and define them by apostolic authority."
The anathema attached to the definition of infallibility strikes below
the feet of Protestants. It only anathematizes those who contradict
the definition. Protestants do not stoop to do so. They may freely
admit that the Pope is as infallible as the Church which made him
irreformable, and for once they may believe more than the Pope, by
admitting that the Church is as infallible as he. They certainly are not
tempted to deny that the Pope, whether in his Decrees or out of
them, is irreformable. Here, again, they believe more than the Pope.
The Civiltá states that now burst out a loud acclamation among the
Fathers, accompanied with salvos of artillery. The small crowd of
priests and nuns, and such like, as Vitelleschi says, about the door of
the Hall raised a shout. Quirinus says that the nuns cried "Papa
mio"—My Pope. According to the Acta Sanctæ Sedis, St. Peter's was
very full of people, who broke forth in such applause that you would
scarcely have believed that you were in the temple of the Prince of
the Apostles, hearing it echo again and again with these unwonted
sounds.
The Irreformable then addressed his Bishops in the following
allocution. In order to do so, according to the Stimmen, he had to
make several vain attempts, owing to the repeated applause of the
Fathers; an applause which recalls a sad word of Vitelleschi, that
some are never so jubilant as when they have placed a new yoke on
their necks. At length the thunders of applause were still, and the
waiting world was ready to hear the first utterance of the first
human being ever set up on a throne in a temple, by hundreds of
men of full age and of sound reason, to utter to all the earth words
never to be questioned or amended, much less recalled. Hush! The
Infallible gives forth the first oracle in his now acknowledged
plenitude of power. Does it sound like "the word of God," at whose
potent spell a disordered world will rise to new order and repose, or
like that of an old man chiding the absent bishops who had not
adorned the triumph of the day?

This exalted authority of the Roman Pontiff, venerable brethren,


does not oppress, but assists; does not destroy, but builds up
and often confirms in dignity, unites in affection, and
strengthens and protects the rights of brethren—that is, of the
bishops. Let those who now judge in the earthquake know that
the Lord is not in the earthquake. Let them remember that, a
few years ago, holding different views, they copiously expressed
themselves as of our own opinion, and that of the majority of
this great assembly; but they then judged in the calm. In
judging of the same case, can we have two opposing
consciences? God forbid! May God, therefore, enlighten their
minds and their hearts; and as He alone works great marvels,
may He illuminate their minds and hearts, so that all may come
to the breast of their Father, that of the unworthy Vicar of Jesus
Christ on earth, who loves them, who esteems them, and who
longs to be one with them. And so, bound together in the bond
of charity, may we be able to fight the battle of the Lord, so that
our enemies may not deride us, but may rather fear us, and
may in time lay down the weapons of wickedness before the
truth; and may we all be enabled to say with St. Augustine,
"Thou hast called me into Thy wonderful light, and lo, I see!"
[474]

The bishops applauded, and the journals found the allocution divine.
The Liberal Catholics, however, felt that when the Pope said, "I
desire to be one with them," he meant, "I desire to see them submit
to me." The grave point was, that this being the first utterance from
the chair after he had been solemnly declared to be as infallible as
the Church, an utterance made—if ever one could be made—in the
exercise of his office as pastor of the universal Church, it contained a
misstatement of fact and a misconception of doctrine. The Pope,
occupied with the absentees, ventured roundly to assert that they
who now opposed had been a few years ago fully of his opinion and
of that of the majority. If ever a public misstatement deserved to be
called by a strong short name, this one did. Had the language of the
Decree, now lifted to the level of the law that changeth not, been
put by a Protestant, as the doctrine of their Church, before
Schwarzenberg and Rauscher, before Darboy and Dupanloup, before
Strossmayer, Kenrick, Clifford, and MacHale, any day previous to the
year 1870, they would have railed at the Protestant as a slanderer,
and perhaps would not have let him escape without an episcopal
curse. Would not Spalding have sneered at D'Aubigné as a fool and a
false witness had he said that the Pope could make a dogma without
either the counsel of bishops or the consent of the Church? No, the
ears of the Pope were full of words of witness; the bureaux of the
Council contained document after document in evidence that the
statement which he now dared to make when none dared to
contradict, was not true, and was known not to be true. Those
bishops, in order to please the Pope, had unwisely, as they now felt,
stretched the doctrine of primacy, which they did hold, till it looked
to unpractised eyes very like Papal infallibility. True, they had done
this in what seemed rather to be addresses of ceremony than
formularies of doctrine; for whenever infallibility itself had been
nakedly presented to them, even without the adjunct of ordinary
jurisdiction in every diocese, and without any repudiation of the
consent of the Church, they had mustered the manhood to oppose
it. The Pope neither stated the facts nor discriminated between
opinion and opinion. He did state as fact what was not fact, and
confounded opinions that differed. Friedrich, with the acute author
of the Epistolæ Obscurorum Virorum, and not a few others, thinks
that he is personally incapable of understanding theological
distinctions, and that he could not explain what the doctrine of Papal
infallibility means. This seems to be impossible, and yet there is very
much to prevent one from pronouncing it ridiculous. But whether he
is capable of distinguishing in such a case or not is a very slight
matter. The fact that remains for us is, that his first utterance from
the acknowledged seat of infallibility was wholly occupied with the
absent bishops, that he insinuated that they had a double
conscience, and that the grounds on which he made that insinuation
were incorrect in fact and inaccurate in thought. Had the question
whether the Papacy was a divine organ of truth, or merely a
contrivance of clever old men, liable to be overseen, like other
mortals, in their words and deeds, been designedly subjected to a
fair test, we can with difficulty conceive of one fairer or more
conclusive, than that first utterance from the recognized seat of
inerrancy. There is nothing divine in it, and the human elements do
not rise above a very ordinary level.
The city was silent and chill. We can form but a faint idea of how
much, in such a case, mere external impressions sway a community
trained like the one of which we speak. It was as if the salvos from
St. Angelo, the feeble voice of the Irreformable, had been swallowed
up in the salvos of the skies, the voice of the Sole Infallible. The
Giornale di Roma and the Civiltá, the Univers and the Unitá, would
have spared no epithets in denouncing the man who three months
before should have said that, on the night when the creative word,
the fiat, Let there be light, should be uttered; on the night when the
patient voice of the people and of the priests should be hushed
under "the voice of God" proclaiming infallibility, a noble Roman
would pen what Vitelleschi that night quietly wrote down: "The
government offices, the religious establishments, and a few private
houses, were illuminated; but the rest of the city remained in perfect
silence and profound darkness."
The concluding words of the Roman writer, in narrating the triumph
of the day, are not wholly indifferent to us in England (p. 221)—

History is bound to award to the author and originator of every


work the praise or blame which is due to him. All must
remember the part taken by the Fathers of the Civiltá Cattolica,
and Monsignor Manning, Archbishop of Westminster, in
promoting the dogma of the personal infallibility of the Pope,
and all know that it was their mind and their will that carried it.
On the day of the promulgation of the dogma, Monsignor
Manning received as a gift from the Society of the Jesuits, a
portrait of Bellarmine, with the following inscription—
Henrico Edwardo Manning,
Archiep. Westmonast.
Sodales Soc. Jesu;
Collegii Civilitatis Catholicæ,
Sessionis IV Concilii Vaticani
Mnemosynon.

It is said that the portrait was really that of St. Charles Borromeo.
One other note was often made as to this memorable day. It was the
same day on which was done the deed that irrevocably sealed the
fall of the Second Empire, and consequently the fall of its pendant
and protégé, the Papal throne. The declaration of war was delivered
in Berlin on the day following, and must have left Paris that day!
The reader having already had several specimens, and fair ones, of
Ce Qui se Passe au Concile, is in a position, so far as relates to it, to
form his own opinion of its "stinking calumnies," to adopt the
characteristic language of the Most Eminent, Most Reverend, and
Right Reverend Fathers of the Council. But as to La Dernière Heure
du Concile (The last hour of the Council), we may at this point fitly
give a few examples. It speaks of "Rules imposed in violation of the
most manifest rights of the Council, of Commission chosen
beforehand, of illusory votes, of an oppressive tutelage, of
discussions without order and without aim, of modifications of the
Rules as arbitrary as they were multiplied." It asserts that as to the
minority public calumnies were not spared them; that their speakers
were more than once forced to leave the desk without being able to
explain, much less to defend their views; while the majority from the
beginning took the reasons of the minority for insults, and rendered
back insults for reasons; and that the petitions of the minority were
not only left without effect, but without answer. It pictures the
Jesuits as meeting the bishops after three centuries of feigned truce
on the ground where their General Laynez, defeated at Trent, had
left them; but as now coming perfectly prepared for the battle, while
the bishops had not foreseen anything—

To-day it is not the episcopate that refuses to hear Father


Laynez, but it is Father Laynez who, master of the field, does
not even deign to listen to the episcopate, and announces to it
that the question has been long decided.... The day that Pius IX
said, There shall be a Council, the Company of Jesus said, I
shall be the Council. We have seen three of its doctors absorb
both the doctrinal power of the august assembly, and its right of
initiative. The bishops have been called to sanction what the
Jesuits have written, and there is the whole history of the
Council.

You might also like