diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/02_requirements_overview.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/02_requirements_overview.mdx deleted file mode 100644 index 6a11bcd8b98..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/02_requirements_overview.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Requirements Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/requirements_overview.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/requirements_overview.html" ---- - - - -## Supported Versions - -The EDB JDBC Connector is certified with Advanced Server version 9.6 and above. - -## Supported Platforms - -The EDB JDBC Connector native packages are supported on the following 64 bit Linux platforms: - -- RHEL and CentOS (x86_64) 7.x -- RHEL and Rocky Linux and AlmaLinux (x86_64) 8.x -- OL Linux 7.x and 8.x -- PPC-LE 8 running RHEL or CentOS 7.x -- SLES 12.x -- Debian 9.x and 10.x -- Ubuntu 18.04 LTS - -The EDB JDBC Connector graphical installers are supported on the following Windows platforms: - -64-bit Windows: - -- Windows Server 2019 -- Windows Server 2016 -- Windows Server 2012 R2 -- Windows 10 -- Windows 8.1 - -32-bit Windows: - -- Windows 10 -- Windows 8.1 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/03_advanced_server_jdbc_connector_overview.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/03_advanced_server_jdbc_connector_overview.mdx deleted file mode 100644 index 03f48f2ae53..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/03_advanced_server_jdbc_connector_overview.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Advanced Server JDBC Connector Overview" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_server_jdbc_connector_overview.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_server_jdbc_connector_overview.html" ---- - - - -Sun Microsystems created a standardized interface for connecting Java applications to databases known as Java Database Connectivity (JDBC). The EDB JDBC Connector connects a Java application to a Postgres database. - - - -## JDBC Driver Types - -There are currently four different types of JDBC drivers, each with their own specific implementation, use and limitations. The EDB JDBC Connector is a Type 4 driver. - -Type 1 Driver - -- This driver type is the JDBC-ODBC bridge. -- It is limited to running locally. -- Must have ODBC installed on computer. -- Must have ODBC driver for specific database installed on computer. -- Generally can’t run inside an applet because of Native Method calls. - -Type 2 Driver - -- This is the native database library driver. -- Uses Native Database library on computer to access database. -- Generally can’t run inside an applet because of Native Method calls. -- Must have database library installed on client. - -Type 3 Driver - -- 100% Java Driver, no native methods. -- Does not require pre-installation on client. -- Can be downloaded and configured on-the-fly just like any Java class file. -- Uses a proprietary protocol for talking with a middleware server. -- Middleware server converts from proprietary calls to DBMS specific calls - -Type 4 Driver - -- 100% Java Driver, no native methods. -- Does not require pre-installation on client. -- Can be downloaded and configured on-the-fly just like any Java class file. -- Unlike Type III driver, talks directly with the DBMS server. -- Converts JDBC calls directly to database specific calls. - -## The JDBC Interface - -The following figure shows the core API interfaces in the JDBC specification and how they relate to each other. These interfaces are implemented in the `java.sql` package. - -![JDBC Class Relationships](images/jdbc_class_relationships.png) - -JDBC Class Relationships - -## JDBC Classes and Interfaces - -The core API is composed of classes and interfaces; these classes and interfaces work together as shown below: - -![Core Classes and Interfaces](images/core_classes_and_interfaces.png) - -Core Classes and Interfaces - -## The JDBC DriverManager - -The figure below depicts the role of the `DriverManager` class in a typical JDBC application. The `DriverManager` acts as the bridge between a Java application and the backend database and determines which JDBC driver to use for the target database. - -![DriverManager/Drivers](images/drivermanager_drivers.png) - -DriverManager/Drivers - -## Advanced Server JDBC Connector Compatibility - -EDB provides support for multiple JRE/JDK versions by providing appropriate JDBC drivers for each version of Java Virtual Machine. Use the following table to determine compatibility between your JRE/JDK version and the Advanced Server Driver. - -Table – Advanced Server JDBC Driver Compatibility - -| JRE/JDK Version(s) | JDBC Specification | Advanced Server JDBC Driver | Community JDBC Driver | -| --------------------- | ------------------ | --------------------------- | ----------------------------- | -| 1.4, 1.5 (see Note 1) | 3 | edb-jdbc15.jar | postgresql-9.3.1103.JDBC3.jar | -| 1.6 (see Note 2) | 4 | edb-jdbc16.jar | postgresql-42.2.12.jre6.jar | -| 1.7 (see Note 3) | 4.1 | edb-jdbc17.jar | postgresql-42.2.12.jre7.jar | -| 1.8 or newer | 4.2 | edb-jdbc18.jar | postgresql-42.2.12.jar | - -!!! Note - 1. JRE/JDK versions 1.4 and 1.5 are no longer supported by the Advanced Server JDBC Connector as the JDBC driver file `edb-jdbc15.jar` is no longer provided. - 2. The `edb-jdbc16.jar` file is not available for Linux on PowerPC 64 little endian (ppc64le), Debian/Ubuntu and RHEL 8 platforms. - 3. The `edb-jdbc17.jar` file is not available for Debian/Ubuntu and RHEL 8 platforms. - 4. Community version numbers are based on the `pgjdbc` version, not the PostgreSQL version. - 5. Advanced Server JDBC releases are decoupled with EDB Postgres Advanced Server releases. - -The following JDBC Compatibility rules apply: - -- From Community website: “The PostgreSQL JDBC driver has some unique properties that you should be aware of before starting to develop any code for it. The current development driver supports six server versions and six java environments. This doesn't mean that every feature must work in every combination, but a reasonable behaviour must be provided for non-supported versions. While this extra compatibility sounds like a lot of work, the actual goal is to reduce the amount of work by maintaining only one code base.” -- PgJDBC regression tests are run against all PostgreSQL versions since 8.4, including the development version. - -For the supported community versions, see the [PostgreSQL JDBC Driver website](https://jdbc.postgresql.org/download.html). diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx deleted file mode 100644 index 3761c890fcf..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: "Installing the Connector with an RPM Package" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_the_connector_with_an_rpm_package.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_the_connector_with_an_rpm_package.html" ---- - - - -You can install the JDBC Connector using an RPM package on the following platforms: - -- [RHEL 7](#rhel7) -- [RHEL 8](#rhel8) -- [CentOS 7](#centos7) -- [Rocky Linux/AlmaLinux 8](#centos8) - - - -## On RHEL 7 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` - -Enable the optional, extras, and HA repositories: - -```text -subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -``` -yum install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On RHEL 8 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` - -Enable the `codeready-builder-for-rhel-8-\*-rpms` repository: - -```text -ARCH=$( /bin/arch ) -subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the below command to install the JDBC Connector: - -```text -dnf install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On CentOS 7 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` - -!!! Note - You may need to enable the `[extras]` repository definition in the `CentOS-Base.repo` file (located in `/etc/yum.repos.d`). - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -```text -yum install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On Rocky Linux 8 or AlmaLinux 8 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` - -Enable the `PowerTools` repository: - -```text -dnf config-manager --set-enabled PowerTools -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -```text -dnf install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - -## Updating an RPM Installation - -If you have an existing JDBC Connector RPM installation, you can use yum or dnf to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: - -- On RHEL or CentOS 7: - - `yum upgrade edb-repo` - -- On RHEL or Rocky Linux or AlmaLinux 8: - - `dnf upgrade edb-repo` - -yum or dnf will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum or dnf to upgrade any installed packages: - -- On RHEL or CentOS 7: - - `yum upgrade edb-jdbc` - -- On RHEL or CentOS 8: - - `dnf upgrade edb-jdbc` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx deleted file mode 100644 index 2cb57005e95..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Installing the Connector on an SLES 12 Host" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_the_connector_on_an_sles_12_host.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_the_connector_on_an_sles_12_host.html" ---- - - - -You can use the zypper package manager to install the connector on an SLES 12 host. zypper will attempt to satisfy package dependencies as it installs a package, but requires access to specific repositories that are not hosted at EDB. - -Before installing the connector, use the following commands to add EDB repository configuration files to your SLES host: - -`zypper addrepo https://zypp.enterprisedb.com/suse/epas12-sles.repo` -`zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-tools.repo` -`zypper addrepo https://zypp.enterprisedb.com/suse/epas-sles-dependencies.repo` - -Each command creates a repository configuration file in the `/etc/zypp/repos.d` directory. The files are named: - -- `edbas12suse.repo` -- `edbasdependencies.repo` -- `edbastools.repo` - -After creating the repository configuration files, use the `zypper refresh` command to refresh the metadata on your SLES host to include the EDB repositories: - -```text -/etc/zypp/repos.d # zypper refresh -Repository 'SLES12-12-0' is up to date. -Repository 'SLES12-Pool' is up to date. -Repository 'SLES12-Updates' is up to date. -Retrieving repository 'EDB Postgres Advanced Server 12 12 - x86_64' -metadata -----------------------[\] - -Authentication required for -'https://zypp.enterprisedb.com/12/suse/suse-12-x86_64' -User Name: -Password: - -Retrieving repository 'EDB Postgres Advanced Server 12 12 - x86_64' -metadata...................................[done] -Building repository 'EDB Postgres Advanced Server 12 12 - x86_64' -cache..........................[done] -All repositories have been refreshed. -... -``` - -When prompted for a `User Name` and `Password`, provide your connection credentials for the EDB repository. If you need credentials, contact [EDB](https://www.enterprisedb.com/repository-access-request/). - -Before installing EDB Postgres Advanced Server or supporting components, you must also add SUSEConnect and the SUSE Package Hub extension to the SLES host, and register the host with SUSE, allowing access to SUSE repositories. Use the commands: - -  `zypper install SUSEConnect` -  `SUSEConnect -p PackageHub/12/x86_64` -  `SUSEConnect -p sle-sdk/12/x86_64` - -For detailed information about registering a SUSE host, visit [the SUSE website](https://www.suse.com/support/kb/doc/?id=7016626). - -Then, you can use the zypper utility to install the connector: - - `zypper install edb-jdbc` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx deleted file mode 100644 index 2409e24fe5d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Installing the Connector on a Debian or Ubuntu Host" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" ---- - - - -To install a DEB package on a Debian or Ubuntu host, you must have credentials that allow access to the EDB repository. To request credentials for the repository, visit [the EDB website](https://www.enterprisedb.com/repository-access-request). - -The following steps will walk you through on using the EDB apt repository to install a DEB package. When using the commands, replace the `username` and `password` with the credentials provided by EDB. - -1. Assume superuser privileges: - - ```text - sudo su – - ``` - -2. Configure the EDB repository: - - On Debian 9: - - ```text - sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` - - On Debian 10: - - 1. Set up the EDB repository: - - ```text - sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` - - 2. Substitute your EDB credentials for the `username` and `password` in the following command: - - ```text - sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' - ``` - -3. Add support to your system for secure APT repositories: - - ```text - apt-get install apt-transport-https - ``` - -4. Add the EDB signing key: - - ```text - wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | apt-key add - - ``` - -5. Update the repository metadata: - - ```text - apt-get update - ``` - -6. Install DEB package: - - ```text - apt-get install edb-jdbc - ``` - -!!! Note - By default, the Debian 9x and Ubuntu 18.04 platform installs Java version 10. Make sure you install Java version 8 on your system to run the EDB Java-based components. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx deleted file mode 100644 index 4077db3a11a..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Using the Graphical Installer to Install the Connector" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_the_graphical_installer_to_install_the_connector.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_the_graphical_installer_to_install_the_connector.html" ---- - - - -You can use the EDB Connectors Installation wizard to add the JDBC connector to your system; the wizard is available at the [EDB website](https://www.enterprisedb.com/software-downloads-postgres/). - -This section demonstrates using the Installation Wizard to install the Connectors on a Windows system. To open the Installation Wizard, download the installer, and then, right-click on the installer icon, and select `Run As Administrator` from the context menu. - -When the `Language Selection` popup opens, select an installation language and click `OK` to continue to the `Setup` window. - -![The JDBC Connector Installation wizard](../images/jdbc_installation_wizard.png) - -The JDBC Connector Installation wizard - -Click `Next` to continue. - -![The Installation dialog](../images/jdbc_installation_dialog.png) - -The Installation dialog - -Use the `Installation Directory` dialog to specify the directory in which the connector will be installed, and click `Next` to continue. - -![The Ready to Install dialog](../images/ready_to_install.png) - -The Ready to Install dialog - -Click `Next` on the `Ready to Install` dialog to start the installation; popup dialogs confirm the progress of the installation wizard. - -![The installation is complete](../images/jdbc_installation_complete.png) - -The installation is complete - -When the wizard informs you that it has completed the setup, click the `Finish` button to exit the dialog. - -You can also use StackBuilder Plus to add or update the connector on an existing Advanced Server installation; to open StackBuilder Plus, select StackBuilder Plus from the Windows `Apps` menu. - -![Starting StackBuilder Plus](../images/starting_stackbuilder_plus.png) - -Starting StackBuilder Plus - -When StackBuilder Plus opens, follow the onscreen instructions. Select the `EnterpriseDB JDBC Connector` option from the `Database Drivers` node of the tree control. - -![Selecting the Connectors installer](../images/selecting_the_connectors_installer.png) - -Selecting the Connectors installer - -Follow the directions of the onscreen wizard to add/update an installation of the EDB Connectors. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx deleted file mode 100644 index 3ee589ec814..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Configuring the Advanced Server JDBC Connector" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_advanced_server_jdbc_connector.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_advanced_server_jdbc_connector.html" ---- - - - -Advanced Server ships with the following JDBC drivers: - -- `edb-jdbc16.jar` supports JDBC version 4 -- `edb-jdbc17.jar` supports JDBC version 4.1 -- `edb-jdbc18.jar` supports JDBC version 4.2 - -!!! Note - The `edb-jdbc16.jar` file is not available for Linux on PowerPC 64 little endian (ppc64le). - -To make the JDBC driver available to Java, you must either copy the appropriate java `.jar` file for the JDBC version that you are using to your `$java_home/jre/lib/ext` directory or append the location of the `.jar` file to the `CLASSPATH` environment variable. - -Note that if you choose to append the location of the `jar` file to the `CLASSPATH` environment variable, you must include the complete pathname: - - `/usr/edb/jdbc/edb-jdbcxx.jar` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/index.mdx deleted file mode 100644 index 3b16c79cbc7..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/04_installing_and_configuring_the_jdbc_connector/index.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Installing and Configuring the JDBC Connector" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_and_configuring_the_jdbc_connector.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_and_configuring_the_jdbc_connector.html" ---- - - - -This chapter describes how to install and configure the EDB JDBC Connector. - -Before installing the EDB JDBC Connector, you must have Java installed on your system; you can download a Java installer that matches your environment from the Oracle Java Downloads [website](http://www.oracle.com/technetwork/java/javase/downloads/index.html). Documentation that contains detailed installation instructions is available through the associated `Installation Instruction` links on the same page. - -You can use the Advanced Server graphical installer or an RPM package to add the EDB JDBC Connector to your installation. - -The following sections describe these installation methods. - -
- -installing_the_connector_with_an_rpm_package installing_the_connector_on_an_sles_12_host installing_a_deb_package_on_a_debian_or_ubuntu_host using_the_graphical_installer_to_install_the_connector configuring_the_advanced_server_jdbc_connector - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx deleted file mode 100644 index 320bd9e79b2..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Loading the Advanced Server JDBC Connector" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/loading_the_advanced_server_jdbc_connector.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/loading_the_advanced_server_jdbc_connector.html" ---- - - - -The Advanced Server JDBC driver is written in Java and is distributed in the form of a compiled JAR (Java Archive) file. Use the `Class.forName()` method to load the driver. The `forName()` method dynamically loads a Java class at runtime. When an application calls the `forName()` method, the JVM (Java Virtual Machine) attempts to find the compiled form (the bytecode) that implements the requested class. - -The Advanced Server JDBC driver is named `com.edb.Driver`: - -`Class.forName("com.edb.Driver");` - -After loading the bytecode for the driver, the driver registers itself with another JDBC class (named `DriverManager`) that is responsible for managing all the JDBC drivers installed on the current system. - -If the JVM is unable to locate the named driver, it throws a `ClassNotFound` exception (which is intercepted with a `catch` block near the end of the program). The `DriverManager` is designed to handle multiple JDBC driver objects. You can write a Java application that connects to more than one database system via JDBC. The next section explains how to select a specific driver. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx deleted file mode 100644 index 3f20111a6f9..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Additional Connection Properties" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/additional_connection_properties.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/additional_connection_properties.html" ---- - - - -In addition to the standard connection parameters, the Advanced Server JDBC driver supports connection properties that control behavior specific to `EDB`. You can specify these properties in the connection URL or as a `Properties` object parameter passed to `DriverManager.getConnection()`. Listing 1.2 demonstrates how to use a `Properties` object to specify additional connection properties: - -Listing 1.2 - -```text -String url = "jdbc:edb://localhost/edb"; -Properties props = new Properties(); - -props.setProperty("user", "enterprisedb"); -props.setProperty("password", "enterprisedb"); -props.setProperty("sslfactory", "com.edb.ssl.NonValidatingFactory"); -props.setProperty("ssl", "true"); - -Connection con = DriverManager.getConnection(url, props); -``` - -!!! Note - By default the combination of `SSL=true` and setting the connection URL parameter `sslfactory=org.postgresql.ssl.NonValidatingFactory` encrypts the connection but does not validate the SSL certificate. To enforce certificate validation, you must use a `Custom SSLSocketFactory`. For more details about writing a `Custom SSLSocketFactory`, review [the PostgreSQL JDBC driver documentation](https://jdbc.postgresql.org/documentation/head/ssl-factory.html). - -To specify additional connection properties in the URL, add a question mark and an ampersand-separated list of keyword-value pairs: - -`String url = "jdbc:edb://localhost/edb?user=enterprisedb&ssl=true";` - -Some of the additional connection properties are shown in the following table: - -Table 5-2 - Additional Connection Properties - -| Name | Type | Description | -| --------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| user | String | The database user on whose behalf the connection is being made. | -| password | String | The database user’s password. | -| ssl | Boolean | Requests an authenticated, encrypted SSL connection | -| loggerLevel | String | The logger level of the driver. The allowed values are OFF, DEBUG or TRACE. This enables the java.util.logging.Logger Level of the driver based on the following mapping of levels: DEBUG -> FINE, TRACE -> FINEST. The loggerLevel property is intended for debugging the driver, and not for general SQL query debugging. | -| loggerFile | String | The file name output of the logger. This parameter must be used together with loggerLevel. If set, the Logger uses a java.util.logging.FileHandler to write to a specified file. If the parameter is not set or the file can’t be created, the java.util.logging.ConsoleHandler is used instead of java.util.logging.FileHandler. | -| charSet | String | The value of charSet determines the character set used for data sent to or received from the database. | -| prepareThreshold | Integer | The value of prepareThreshold determines the number of PreparedStatement executions required before switching to server side prepared statements. The default is five. | -| loadBalanceHosts | Boolean | In default mode (disabled) hosts are connected in the given order. If enabled, hosts are chosen randomly from the set of suitable candidates. | -| targetServerType | String | Allows opening connections to only servers with the required state. The allowed values are any, primary, secondary, preferSecondary, and preferSyncSecondary. The primary/secondary distinction is currently done by observing if the server allows writes. The value preferSecondary tries to connect to secondaries if any are available, otherwise allows connecting to the primary. The Advanced Server JDBC Connector supports preferSyncSecondary, which permits connection to only synchronous secondaries or the primary if there are no active synchronous secondaries. | -| skipQuotesOnReturning | Boolean | When set to true, column names from the RETURNING clause are not quoted. This eliminates a case-sensitive comparison of the column name. When set to false (the default setting), column names are quoted. | diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx deleted file mode 100644 index 3f47b5c80e8..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx +++ /dev/null @@ -1,263 +0,0 @@ ---- -title: "Preferring Synchronous Secondary Database Servers" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/preferring_synchronous_secondary_database_servers.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/preferring_synchronous_secondary_database_servers.html" ---- - - - -The Advanced Server JDBC Connector supports the `preferSyncSecondary` option for the `targetServerType` connection property as noted in Table 5-2. - -The `preferSyncSecondary` option provides a preference for synchronous, standby servers for failover connection, and thus ignoring asynchronous servers. - -The specification of this capability in the connection URL is shown by the following syntax: - -```text -jdbc:edb://primary:port,secondary_1:port_1,secondary_2:port_2,.../ -database?targetServerType=preferSyncSecondary -``` - -**Parameters** - -`primary:port` - -The IP address or a name assigned to the primary database server followed by its port number. If `primary` is a name, it must be specified with its IP address in the `/etc/hosts` file on the host running the Java program. **Note:** The primary database server can be specified in any location in the list. It does not have to precede the secondary database servers. - -`secondary_n:port_n` - -The IP address or a name assigned to a standby, secondary database server followed by its port number. If `secondary_n` is a name, it must be specified with its IP address in the `/etc/hosts` file on the host running the Java program. - -`database` - -The name of the database to which the connection is to be made. - -The following is an example of the connection URL: - -```text -String url = "jdbc:edb://primary:5300,secondary1:5400/edb?targetServerType=preferSyncSecondary"; -con = DriverManager.getConnection(url, "enterprisedb", "edb"); -``` - -The following characteristics apply to the `preferSyncSecondary` option: - -- The primary database server may be specified in any location in the connection list. -- Connection for accessing the database for usage by the Java program is first attempted on a synchronous secondary. The secondary servers are available for read-only operations. -- No connection attempt is made to any servers running in asynchronous mode. -- The order in which connection attempts are made is determined by the `loadBalanceHosts` connection property as described in Table 5‑2. If disabled, which is the default setting, connection attempts are made in the left-to-right order specified in the connection list. If enabled, connection attempts are made randomly. -- If connection cannot be made to a synchronous secondary, then connection to the primary database server is used. If the primary database server is not active, then the connection attempt fails. - -The synchronous secondaries to be used for the `preferSyncSecondary` option must be configured for hot standby usage. - -The following section provides a brief overview of setting up the primary and secondary database servers for hot standby, synchronous replication. - -## Configuring Primary and Secondary Database Servers Overview - -The process for configuring a primary and secondary database servers are described in the PostgreSQL documentation. - -For general information on hot standby usage, which is needed for the `preferSyncSecondary` option, see [the PostgreSQL core documentation](https://www.postgresql.org/docs/12/static/hot-standby.html). - -For information about creating a base backup for the secondary database server from the primary, see Section 25.3.2, *Making a Base Backup* (describes usage of the pg_basebackup utility program) or Section 25.3.3, *Making a Base Backup Using the Low Level API* within Section 25.3 *Continuous Archiving and Point-in-Time Recovery (PITR)* in [The PostgreSQL Core Documentation](https://www.postgresql.org/docs/12/static/continuous-archiving.html). - -For information on the configuration parameters that must be set for hot standby usage, see [Section 19.6, Replication](https://www.postgresql.org/docs/12/static/runtime-config-replication.html). - -The following section provides a basic example of setting up the primary and secondary database servers. - -## Example: Primary and Secondary Database Servers - -In the example that follows, the: - -- primary database server resides on host `192.168.2.24`, port `5444` -- Secondary database server is named `secondary1` and resides on host `192.168.2.22`, port `5445` -- Secondary database server is named `secondary2` and resides on host `192.162.2.24`, port `5446` (same host as the primary) - -In the primary database server’s `pg_hba.conf` file, there must be a replication entry for each unique replication database `USER/ADDRESS` combination for all secondary database servers. In the following example, the database superuser `enterprisedb` is used as the replication database user for both the `secondary1` database server on `192.168.2.22` and the `secondary2` database server that is local relative to the primary. - -```text -# TYPE DATABASE USER ADDRESS METHOD -host replication enterprisedb 192.168.2.22/32 md5 -host replication enterprisedb 127.0.0.1/32 md5 -``` - -After the primary database server has been configured in the `postgresql.conf` file along with its `pg_hba.conf` file, database server `secondary1` is created by invoking the following command on host `192.168.2.22` for `secondary1`: - -```text -su – enterprisedb -Password: --bash-4.1$ pg_basebackup -D /opt/secondary1 -h 192.168.2.24 -p 5444 -Fp -R -X stream -l 'Secondary1' -``` - -On the secondary database server, `/opt/secondary1`, a `recovery.conf` file is generated in the database cluster, which has been edited in the following example by adding the `application_name=secondary1` setting as part of the `primary_conninfo` string and removal of some of the other unneeded options automatically generated by `pg_basebackup`. Also note the use of the `standby_mode = 'on'` parameter. - -```text -standby_mode = 'on' -primary_conninfo = 'user=enterprisedb password=password host=192.168.2.24 port=5444 application_name=secondary1' -``` - -The application name `secondary1` must be included in the `synchronous_standby_names` parameter of the primary database server’s `postgresql.conf` file. - -The secondary database server (`secondary2`) is created in an alternative manner on the same host used by the primary: - -```text -su - enterprisedb -Password: --bash-4.1$ psql -d edb -c "SELECT pg_start_backup('Secondary2')" -Password: - pg_start_backup ------------------ - 0/6000028 -(1 row) - --bash-4.1$ cp -rp /var/lib/edb/as12/data/opt/secondary2 --bash-4.1$ psql -d edb -c "SELECT pg_stop_backup()" -Password: -NOTICE: pg_stop_backup complete, all required WAL segments have been archived - pg_stop_backup ----------------- - 0/6000130 -(1 row) -``` - -On the secondary database server `/opt/secondary2`, create the `recovery.conf` file in the database cluster. Note the `application_name=secondary2` setting as part of the `primary_conninfo` string as shown in the following example. Also be sure to include the `standby_mode = 'on'` parameter. - -```text -standby_mode = 'on' -primary_conninfo = 'user=enterprisedb password=password host=localhost port=5444 application_name=secondary2' -``` - -The application name `secondary2` must be included in the `synchronous_standby_names` parameter of the primary database server’s `postgresql.conf` file. - -You must ensure the configuration parameter settings in the `postgresql.conf` file of the secondary database servers are properly set (particularly `hot_standby=on`). - -!!! Note - As of EDB Postgres Advanced Server v12, the `recovery.conf` file is no longer valid; it is replaced by the `standby.signal` file. As a result, `primary_conninfo` is moved from the `recovery.conf` file to the `postgresql.conf` file. The presence of `standby.signal` file signals the cluster to run in standby mode. Please note that even if you try to create a `recovery.conf` file manually and keep it under the `data` directory, the server will fail to start and throw an error. - -The parameter `standby_mode=on` is also removed from EDB Postgres Advanced Server v12, and the `trigger_file` parameter name is changed to `promote_trigger_file`. - -The following table lists the basic `postgresql.conf` configuration parameter settings of the primary database server as compared to the secondary database servers: - -Table - Primary/Secondary Configuration Parameters - -| Parameter | Primary | Secondary | Description | -| ------------------------- | ----------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| archive_mode | on | off | Completed WAL segments sent to archive storage | -| archive_command | cp %p /*archive_dir*/%f | n/a | Archive completed WAL segments | -| wal_level (9.5 or prior) | hot_standby | minimal | Information written to WAL segment | -| wal_level (9.6 or later) | replica | minimal | Information written to WAL segment | -| max_wal_senders | *n* (positive integer) | 0 | Maximum concurrent connections from standby servers | -| wal_keep_segments | *n* (positive integer) | 0 | Minimum number of past log segments to keep for standby servers | -| synchronous_standby_names | *n*(*secondary1*, *secondary2*,...) | n/a | List of standby servers for synchronous replication. Must be present to enable synchronous replication. These are obtained from the application_name option of the primary_conninfo parameter in the recovery.conf file of each standby server. | -| hot_standby | off | on | Client application can connect and run queries on the secondary server in standby mode | - -The secondary database server (`secondary1`) is started: - -```text --bash-4.1$ pg_ctl start -D /opt/secondary1 -l logfile -o "-p 5445" -server starting -``` - -The secondary database server (`secondary2`) is started: - -```text --bash-4.1$ pg_ctl start -D /opt/secondary2/data -l logfile -o "-p 5446" -server starting -``` - -To ensure that the secondary database servers are properly set up in synchronous mode, use the following query on the primary database server. Note that the `sync_state` column lists applications `secondary1` and `secondary2` as sync. - -```text -edb=# SELECT usename, application_name, client_addr, client_port, sync_state FROM pg_stat_replication; - usename | application_name | client_addr | client_port | sync_state ---------------+------------------+--------------+-------------+------------ - enterprisedb | secondary1 | 192.168.2.22 | 53525 | sync - enterprisedb | secondary2 | 127.0.0.1 | 36214 | sync -(2 rows) -``` - -The connection URL is: - -```text -String url = "jdbc:edb://primary:5444,secondary1:5445,secondary2:5446/edb?targetServerType=preferSyncSecondary"; -con = DriverManager.getConnection(url, "enterprisedb", "password"); -``` - -The `/etc/hosts` file on the host running the Java program contains the following entries with the server names specified in the connection URL string: - -```text -192.168.2.24 localhost.localdomain primary -192.168.2.22 localhost.localdomain secondary1 -192.168.2.24 localhost.localdomain secondary2 -``` - -For this example, the preferred synchronous secondary connection option results in the first usage attempt made on `secondary1`, then on `secondary2` if `secondary1` is not active, then on the primary if both `secondary1` and `secondary2` are not active as demonstrated by the following program that displays the IP address and port of the database server to which the connection is made. - -```text -import java.sql.*; -public class InetServer -{ - public static void main(String[] args) - { - try - { - Class.forName("com.edb.Driver"); - String url = - "jdbc:edb://primary:5444,secondary1:5445,secondary2:5446/edb?targetServerType=preferSyncSecondary"; - String user = "enterprisedb"; - String password = "password"; - Connection con = DriverManager.getConnection(url, user, password); - - ResultSet rs = con.createStatement().executeQuery("SELECT inet_server_addr() || ':' || inet_server_port()"); - rs.next(); - System.out.println(rs.getString(1)); - - rs.close(); - con.close(); - System.out.println("Command successfully executed"); - } - catch(ClassNotFoundException e) - { - System.out.println("Class Not Found : " + e.getMessage()); - } - catch(SQLException exp) - { - System.out.println("SQL Exception: " + exp.getMessage()); - System.out.println("SQL State: " + exp.getSQLState()); - System.out.println("Vendor Error: " + exp.getErrorCode()); - } - } -} -``` - -**Case 1:** When all database servers are active, connection is made to `secondary1` on `192.168.2.22` port `5445`. - -```text -$ java InetServer -192.168.2.22/32:5445 -Command successfully executed -``` - -**Case 2:** When `secondary1` is shut down, connection is made to `secondary2` on `192.168.2.24` port `5446`. - -```text -bash-4.1$ /usr/edb/as12/bin/pg_ctl stop -D /opt/secondary1 -waiting for server to shut down.... done -server stopped - -$ java InetServer -192.168.2.24/32:5446 -Command successfully executed -``` - -**Case 3:** When `secondary2` is also shut down, connection is made to the `primary` on `192.168.2.24` port `5444`. - -```text -bash-4.1$ /usr/edb/as12/bin/pg_ctl stop -D /opt/secondary2/data -waiting for server to shut down.... done -server stopped - -$ java InetServer -192.168.2.24/32:5444 -Command successfully executed -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx deleted file mode 100644 index 42c3b5fe132..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: "Connecting to the Database" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/connecting_to_the_database.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/connecting_to_the_database.html" ---- - - - -After the driver has loaded and registered itself with the `DriverManager`, the `ListEmployees` class can attempt to connect to the database server, as shown in the following code fragment: - -```text -String url = "jdbc:edb://localhost:5444/edb"; -String user = "enterprisedb"; -String password = "enterprisedb"; -Connection con = DriverManager.getConnection(url, user, password); -``` - -All JDBC connections start with the `DriverManager`. The `DriverManager` class offers a static method called `getConnection()` that is responsible for creating a connection to the database. When you call the `getConnection()` method, the `DriverManager` must decide which JDBC driver to use to connect to the database; that decision is based on a URL (Uniform Resource Locator) that you pass to `getConnection()`. - -A JDBC URL takes the following general format: - - `jdbc::` - -The first component in a JDBC URL is always `jdbc`. When using the Advanced Server JDBC Connector, the second component (the driver) is `edb`. - -The Advanced Server JDBC URL takes one of the following forms: - - `jdbc:edb:` - - `jdbc:edb:///` - - `jdbc:edb://:/` - -The following table shows the various connection parameters: - -Table - Connection Parameters - -| Name | Description | -| -------- | -------------------------------------------------------------------------------------------------------- | -| host | The host name of the server. Defaults to localhost. | -| port | The port number the server is listening on. Defaults to the Advanced Server standard port number (5444). | -| database | The database name. | - -
- -additional_connection_properties preferring_synchronous_secondary_database_servers - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx deleted file mode 100644 index a89a5b9431e..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "Executing SQL Statements through Statement Objects" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_sql_statements_through_statement_objects.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_sql_statements_through_statement_objects.html" ---- - - - -After loading the Advanced Server JDBC Connector driver and connecting to the server, the code in the sample application builds a JDBC `Statement` object, executes an SQL query, and displays the results. - -A `Statement` object sends SQL statements to a database. There are three kinds of Statement objects. Each is specialized to send a particular type of SQL statement: - -- A `Statement` object is used to execute a simple SQL statement with no parameters. -- A `PreparedStatement` object is used to execute a pre-compiled SQL statement with or without IN parameters. -- A `CallableStatement` object is used to execute a call to a database stored procedure. - -You must construct a `Statement` object before executing an SQL statement. The `Statement` object offers a way to send a SQL statement to the server (and gain access to the result set). Each `Statement` object belongs to a `Connection`; use the `createStatement()` method to ask the `Connection` to create the `Statement` object. - -A `Statement` object defines several methods to execute different types of SQL statements. In the sample application, the `executeQuery()` method executes a `SELECT` statement: - -```text -Statement stmt = con.createStatement(); -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -The `executeQuery()` method expects a single argument: the SQL statement that you want to execute. `executeQuery()` returns data from the query in a `ResultSet` object. If the server encounters an error while executing the SQL statement provided, it throws an `SQLException` (and does not return a `ResultSet`). - -## Using Named Notation with a CallableStatement Object - -The JDBC Connector (Advanced Server version 9.6 and later) supports the use of named parameters when instantiating a `CallableStatement` object. This syntax is an extension of JDBC supported syntax, and does not conform to the JDBC standard. - -You can use a `CallableStatement` object to pass parameter values to a stored procedure. You can assign values to `IN`, `OUT`, and `INOUT` parameters with a `CallableStatement` object. - -When using the `CallableStatement` class, you can use ordinal notation or named notation to specify values for an actual arguments. You must set a value for each `IN` or `INOUT` parameter marker in a statement. - -When using ordinal notation to pass values to a `CallableStatement` object, you should use the setter method that corresponds to the parameter type. For example, when passing a `STRING` value, use the `setString` setter method. Each parameter marker within a statement (`?`) represents an ordinal value. When using ordinal parameters, you should pass the actual parameter values to the statement in the order that the formal arguments are specified within the procedure definition. - -You can also use named parameter notation when specifying argument values for a `CallableStatement` object. Named parameter notation allows you to supply values for only those parameters that are required by the procedure, omitting any parameters that have acceptable default values. You can also specify named parameters in any order. - -When using named notation, each parameter name should correspond to a `COLUMN_NAME` returned by a call to the `DatabaseMetaData.getProcedureColumns` method. You should use the `=>` token when including a named parameter in a statement call. - -Use the `registerOutParameter` method to identify each `OUT` or `INOUT` parameter marker in the statement. - -**Examples** - -The following examples demonstrate using the `CallableStatement` method to provide parameters to a procedure with the following signature: - -```text -PROCEDURE hire_emp (ename VARCHAR2 -empno NUMBER -job VARCHAR2 -sal NUMBER -hiredate DATE DEFAULT now(), -mgr NUMBER DEFAULT 7100, -deptno NUMBER -) -``` - -The following example uses ordinal notation to provide parameters: - -```text -CallableStatement cstmt = con.prepareCall -("{CALL hire_emp(?,?,?,?,?,?,?)}"); -//Bind a value to each parameter. -cstmt.setString(1, "SMITH"); -cstmt.setInt(2, 8888); -cstmt.setString(3, "Sales"); -cstmt.setInt(4, 5500); -cstmt.setDate(5, "2016-06-01"); -cstmt.setInt(6, 7566); -cstmt.setInt(7, 30); -``` - -The following example uses named notation to provide parameters; using named notation, you can omit parameters that have default values or re-order parameters: - -```text -CallableStatement cstmt = con.prepareCall -("{CALL hire_emp(ename => ?, -job => ?, -empno => ?, -sal => ?, -deptno => ? -)}"); - -//Bind a value to each parameter. -cstmt.setString("ename", "SMITH"); -cstmt.setInt("empno", 8888); -cstmt.setString("job", "Sales"); -cstmt.setInt("sal", 5500); -cstmt.setInt("deptno", 30); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx deleted file mode 100644 index 42aebf4b367..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Retrieving Results from a ResultSet Object" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/retrieving_results_from_a_resultset_object.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/retrieving_results_from_a_resultset_object.html" ---- - - - -A `ResultSet` object is the primary storage mechanism for the data returned by an SQL statement. Each `ResultSet` object contains both data and metadata (in the form of a `ResultSetMetaData` object). `ResultSetMetaData` includes useful information about results returned by the SQL command: column names, column count, row count, column length, and so on. - -To access the row data stored in a `ResultSet` object, an application calls one or more `getter` methods. A `getter` method retrieves the value in particular column of the current row. There are many different `getter` methods; each method returns a value of a particular type. For example, the `getString()` method returns a `STRING` type; the `getDate()` method returns a `Date`, and the `getInt()` method returns an `INT` type. When an application calls a `getter` method, JDBC tries to convert the value into the requested type. - -Each `ResultSet` keeps an internal pointer that point to the current row. When the `executeQuery()` method returns a `ResultSet`, the pointer is positioned before the first row; if an application calls a `getter` method before moving the pointer, the `getter` method will fail. To advance to the next (or first) row, call the `ResultSet’s next()` method. `ResultSet.next()` is a boolean method; it returns `TRUE` if there is another row in the `ResultSet` or `FALSE` if you have moved past the last row. - -After moving the pointer to the first row, the sample application uses the `getString()` `getter` method to retrieve the value in the first column and then prints that value. Since `ListEmployees` calls `rs.next()` and `rs.getString()` in a loop, it processes each row in the result set. `ListEmployees` exits the loop when `rs.next()` moves the pointer past the last row and returns `FALSE`. - -```text -while(rs.next()) -{ -System.out.println(rs.getString(1)); -} -``` - -When using the `ResultSet` interface, remember: - -- You must call `next()` before reading any values. `next()` returns `true` if another row is available and prepares the row for processing. -- Under the JDBC specification, an application should access each row in the `ResultSet` only once. It is safest to stick to this rule, although at the current time, the Advanced Server JDBC driver will allow you to access a field as many times as you want. -- When you’ve finished using a `ResultSet`, call the `close()` method to free the resources held by that object. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx deleted file mode 100644 index b231b3a3a43..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Freeing Resources" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/freeing_resources.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/freeing_resources.html" ---- - - - -Every JDBC object consumes some number of resources. A `ResultSet` object, for example, may contain a copy of every row returned by a query; a `Statement` object may contain the text of the last command executed, and so forth. It’s usually a good idea to free up those resources when the application no longer needs them. The sample application releases the resources consumed by the `Result`, `Statement`, and `Connection` objects by calling each object’s `close()` method: - -```text -rs.close(); -stmt.close(); -con.close(); -``` - -If you attempt to use a JDBC object after closing it, that object will throw an error. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx deleted file mode 100644 index 8a1158834d9..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Handling Errors" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/handling_errors.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/handling_errors.html" ---- - - - -When connecting to an external resource (such as a database server), errors are bound to occur; your code should include a way to handle these errors. Both JDBC and the Advanced Server JDBC Connector provide various types of error handling. The [ListEmployees class example](./#using_the_advanced_server_jdbc_connector_with_java_applications) demonstrates how to handle an error using `try/catch` blocks. - -When a JDBC object throws an error (an object of type `SQLException` or of a type derived from `SQLException`), the `SQLException` object exposes three different pieces of error information: - -- The error message. -- The SQL State. -- A vendor-specific error code. - -In the example, the following code displays the value of these components should an error occur: - -```text -System.out.println("SQL Exception: " + exp.getMessage()); -System.out.println("SQL State: " + exp.getSQLState()); -System.out.println("Vendor Error: " + exp.getErrorCode()); -``` - -For example, if the server tries to connect to a database that does not exist on the specified host, the following error message is displayed: - -```text -SQL Exception: FATAL: database "acctg" does not exist -SQL State: 3D000 -Vendor Error: 0 -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx deleted file mode 100644 index e4b6dc5d6a7..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: "Using the Advanced Server JDBC Connector with Java applications" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_the_advanced_server_jdbc_connector_with_java_applications.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_the_advanced_server_jdbc_connector_with_java_applications.html" ---- - - - -With Java and the EDB JDBC Connector in place, a Java application can access an Advanced Server database. Listing 1.1 creates an application that executes a query and prints the result set. - -Listing 1.1 - -```text -import java.sql.*; -public class ListEmployees -{ - public static void main(String[] args) - { - try - { - Class.forName("com.edb.Driver"); - String url = "jdbc:edb://localhost:5444/edb"; - String user = "enterprisedb"; - String password = "enterprisedb"; - Connection con = DriverManager.getConnection(url, user, password); - Statement stmt = con.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); - while(rs.next()) - { - System.out.println(rs.getString(1)); - } - - rs.close(); - stmt.close(); - con.close(); - System.out.println("Command successfully executed"); - } - catch(ClassNotFoundException e) - { - System.out.println("Class Not Found : " + e.getMessage()); - } - catch(SQLException exp) - { - System.out.println("SQL Exception: " + exp.getMessage()); - System.out.println("SQL State: " + exp.getSQLState()); - System.out.println("Vendor Error: " + exp.getErrorCode()); - } - } -} -``` - -This example is simple, but it demonstrates the fundamental steps required to interact with an Advanced Server database from a Java application: - -- Load the JDBC driver -- Build connection properties -- Connect to the database server -- Execute an SQL statement -- Process the result set -- Clean up -- Handle any errors that may occur - -
- -loading_the_advanced_server_jdbc_connector connecting_to_the_database executing_sql_statements_through_statement_objects retrieving_results_from_a_resultset_object freeing_resources handling_errors - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/06_executing_sql_commands_with_executeUpdate().mdx b/product_docs/docs/jdbc_connector/42.2.12.3/06_executing_sql_commands_with_executeUpdate().mdx deleted file mode 100644 index 2292926b711..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/06_executing_sql_commands_with_executeUpdate().mdx +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: "Executing SQL Commands with executeUpdate() or through PrepareStatement Objects" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_sql_commands_with_executeUpdate().html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_sql_commands_with_executeUpdate().html" ---- - - - -In the previous example `ListEmployees` executed a `SELECT` statement using the `Statement.executeQuery()` method. `executeQuery()` was designed to execute query statements so it returns a `ResultSet` that contains the data returned by the query. The `Statement` class offers a second method that you should use to execute other types of commands (`UPDATE`, `INSERT`, `DELETE`, and so forth). Instead of returning a collection of rows, the `executeUpdate()` method returns the number of rows affected by the SQL command it executes. - -The signature of the `executeUpdate()` method is: - -```text -int executeUpdate(String sqlStatement) -``` - -Provide this method a single parameter of type `String`, containing the SQL command that you wish to execute. - -## Using executeUpdate() to INSERT Data - -The example that follows demonstrates using the `executeUpdate()` method to add a row to the `emp` table. - -!!! Note - The following example is not a complete application, only a method - the samples in the remainder of this document do not include the code required to set up and tear down a `Connection`. To experiment with the example, you must provide a class that invokes the sample code. - -Listing 1.3 - -```text -public void updateEmployee(Connection con) -{ - try - { - int rowcount = stmt.executeUpdate("INSERT INTO " - + "emp(empno, ename) VALUES(6000,'Jones')"); - System.out.println(""); - System.out.println("Success - "+rowcount+ - " rows affected."); - } catch(Exception err) { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -The `updateEmployee()` method expects a single argument from the caller, a `Connection` object that must be connected to an Advanced Server database: - -```text -public void updateEmployee(Connection con); -``` -The `executeUpdate()` method returns the number of rows affected by the SQL statement (an `INSERT` typically affects one row, but an `UPDATE` or `DELETE` statement can affect more). - -```text -int rowcount = stmt.executeUpdate("INSERT INTO emp(empno, ename)" -+" VALUES(6000,'Jones')"); -``` - -If `executeUpdate()` returns without throwing an error, the call to `System.out.println` displays a message to the user that shows the number of rows affected. - -```text -System.out.println(""); -System.out.println("Success - "+rowcount+" rows affected."); -``` - -The catch block displays an appropriate error message to the user if the program encounters an exception: - -```text -{ -System.out.println("An error has occurred."); -System.out.println("See full details below."); -err.printStackTrace(); -} -``` - -You can use `executeUpdate()` with any SQL command that does not return a result set. However, you probably want to use `PrepareStatements` when the queries can be parameterized. - -## Using PreparedStatements to Send SQL Commands - -Many applications execute the same SQL statement over and over again, changing one or more of the data values in the statement between each iteration. If you use a `Statement` object to repeatedly execute a SQL statement, the server must parse, plan, and optimize the statement every time. JDBC offers another `Statement` derivative, the `PreparedStatement` to reduce the amount of work required in such a scenario. - -Listing 1.4 demonstrates invoking a `PreparedStatement` that accepts an employee ID and employee name and inserts that employee information in the `emp` table: - -```text -public void AddEmployee(Connection con) -{ - try { - Console c = System.console(); - String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.setObject(1,new Integer(c.readLine("ID:"))); - stmt.setObject(2,c.readLine("Name:")); - stmt.execute(); - System.out.println("The procedure successfully executed."); - } catch(Exception err) { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` -Instead of hard-coding data values in the SQL statement, you insert `placeholders` to represent the values that will change with each iteration. Listing 1.4 shows an `INSERT` statement that includes two placeholders (each represented by a question mark): - -```text -String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; -``` -With the parameterized SQL statement in hand, the `AddEmployee()` method can ask the `Connection` object to prepare that statement and return a `PreparedStatement` object: - -```text -PreparedStatement stmt = con.prepareStatement(command); -``` - -At this point, the `PreparedStatement` has parsed and planned the `INSERT` statement, but it does not know what values to add to the table. Before executing the `PreparedStatement`, you must supply a value for each placeholder by calling a `setter` method. `setObject()` expects two arguments: - - - A parameter number; parameter number one corresponds to the first question mark, parameter number two corresponds to the second question mark, etc. - - - The value to substitute for the placeholder. - -The `AddEmployee()` method prompts the user for an employee ID and name and calls `setObject()` with the values supplied by the user: - -```text -stmt.setObject(1,new Integer(c.readLine("ID:"))); -stmt.setObject(2, c.readLine("Name:")); -``` - -And then asks the PreparedStatement object to execute the statement: - -```text -stmt.execute(); -``` - -If the SQL statement executes as expected, `AddEmployee()` displays a message that confirms the execution. If the server encounters an exception, the error handling code displays an error message. - -Some simple syntax examples using `PreparedStatement` sending SQL commands follow: - -To use the UPDATE command to update a row: - -```text -String command = " UPDATE emp SET ename=? WHERE empno=?"; -PreparedStatement stmt = con.prepareStatement(command); -stmt.setObject(1, c.readLine("Name:")); -stmt.setObject(2,new Integer(c.readLine("ID:"))); -stmt.execute(); -``` - -To use the DROP TABLE command to delete a table from a database: - -```text -String command = "DROP TABLE tableName"; -PreparedStatement stmt = con.prepareStatement(command); -stmt.execute(); -``` - -To use the CREATE TABLE command to add a new table to a database: - -```text -String command = ("CREATE TABLE tablename (fieldname NUMBER(4,2), fieldname2 VARCHAR2(30))"; -PreparedStatement stmt = con.prepareStatement(command); -stmt.execute(); -``` - -To use the ALTER TABLE command to change the attributes of a table: - -```text -String command ="ALTER TABLE tablename ADD COLUMN colname BOOLEAN "; -PreparedStatement stmt = con.prepareStatement(command); -stmt.execute(); -``` \ No newline at end of file diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/07_adding_a_graphical_interface_to_a_java_program.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/07_adding_a_graphical_interface_to_a_java_program.mdx deleted file mode 100644 index 8eb8abfefa1..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/07_adding_a_graphical_interface_to_a_java_program.mdx +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: "Adding a Graphical Interface to a Java Program" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/adding_a_graphical_interface_to_a_java_program.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/adding_a_graphical_interface_to_a_java_program.html" ---- - - - -With a little extra work, you can add a graphical user interface to a program - the next example (Listing 1.5) demonstrates how to write a Java application that creates a `JTable` (a spreadsheet-like graphical object) and copies the data returned by a query into that `JTable`. - -!!! Note - The following sample application is a method, not a complete application. To call this method, provide an appropriate main() function and wrapper class. - -Listing 1.5 - -```text -import java.sql.*; -import java.util.Vector; -import javax.swing.JFrame; -import javax.swing.JScrollPane; -import javax.swing.JTable; - -... -public void showEmployees(Connection con) -{ - try - { - Statement stmt = con.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); - ResultSetMetaData rsmd = rs.getMetaData(); - Vector labels = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - labels.addElement(rsmd.getColumnLabel(column + 1)); - - Vector rows = new Vector(); - while(rs.next()) - { - Vector rowValues = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - rowValues.addElement(rs.getString(column + 1)); - rows.addElement(rowValues); - } - - JTable table = new JTable(rows, labels); - JFrame jf = new JFrame("Browsing table: EMP (from EnterpriseDB)"); - jf.getContentPane().add(new JScrollPane(table)); - jf.setSize(400, 400); - jf.setVisible(true); - jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - System.out.println("Command successfully executed"); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Before writing the `showEmployees()` method, you must import the definitions for a few JDK-provided classes: - -```text -import java.sql.*; -import java.util.Vector; -import javax.swing.JFrame; -import javax.swing.JScrollPane; -import javax.swing.JTable; -``` - -The `showEmployees()` method expects a Connection object to be provided by the caller; the `Connection` object must be connected to the Advanced Server: - -```text -public void showEmployees(Connection con) -``` - -`showEmployees()` creates a `Statement` and uses the `executeQuery()` method to execute an SQL query that generates an employee list: - -```text -Statement stmt = con.createStatement(); -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -As you would expect, `executeQuery()` returns a `ResultSet` object. The `ResultSet` object contains the metadata that describes the `shape` of the result set (that is, the number of rows and columns in the result set, the data type for each column, the name of each column, and so forth). You can extract the metadata from the `ResultSet` by calling the `getMetaData()` method: - -```text -ResultSetMetaData rsmd = rs.getMetaData(); -``` - -Next, `showEmployees()` creates a `Vector` (a one dimensional array) to hold the column headers and then copies each header from the `ResultMetaData` object into the vector: - -```text -Vector labels = new Vector(); -for(int column = 0; column < rsmd.getColumnCount(); column++) -{ - labels.addElement(rsmd.getColumnLabel(column + 1)); -} -``` - -With the column headers in place, `showEmployees()` extracts each row from the `ResultSet` and copies it into a new vector (named `rows`). The `rows` vector is actually a vector of vectors: each entry in the `rows` vector contains a vector that contains the data values in that row. This combination forms the two-dimensional array that you will need to build a `JTable`. After creating the rows vector, the program reads through each row in the `ResultSet` (by calling `rs.next()`). For each column in each row, a `getter` method extracts the value at that row/column and adds the value to the `rowValues` vector. Finally, `showEmployee()` adds each `rowValues` vector to the `rows` vector: - -```text -Vector rows = new Vector(); -while(rs.next()) -{ - Vector rowValues = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - rowValues.addElement(rs.getString(column + 1)); - rows.addElement(rowValues); -} -``` - -At this point, the vector (`labels`) contains the column headers, and a second two-dimensional vector (`rows`) contains the data for the table. Now you can create a `JTable` from the vectors and a `JFrame` to hold the `JTable`: - -```text -JTable table = new JTable(rows, labels); -JFrame jf = new JFrame("Browsing table: EMP (from EnterpriseDB)"); -jf.getContentPane().add(new JScrollPane(table)); -jf.setSize(400, 400); -jf.setVisible(true); -jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); -System.out.println("Command successfully executed"); -``` - -The `showEmployees()` method includes a `catch` block to intercept any errors that may occur and display an appropriate message to the user: - -```text -catch(Exception err) -{ - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); -} -``` - -The result of calling the `showEmployees()` method is shown in below figure: - -![The showEmployees Window](images/the_showemployees_window.png) diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx deleted file mode 100644 index aeee8fb18be..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: "Reducing Client-side Resource Requirements" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/reducing_client-side_resource_requirements.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/reducing_client-side_resource_requirements.html" ---- - - - -The Advanced Server JDBC driver retrieves the results of a SQL query as a `ResultSet` object. If a query returns a large number of rows, using a batched `ResultSet` will: - -- Reduce the amount of time it takes to retrieve the first row. -- Save time by retrieving only the rows that you need. -- Reduce the memory requirement of the client. - -When you reduce the fetch size of a `ResultSet` object, the driver doesn’t copy the entire `ResultSet` across the network (from the server to the client). Instead, the driver requests a small number of rows at a time; as the client application moves through the result set, the driver fetches the next batch of rows from the server. - -Batched result sets cannot be used in all situations. Not adhering to the following restrictions will make the driver silently fall back to fetching the whole `ResultSet` at once: - -- The client application must disable `autocommit`. -- The `Statement` object must be created with a `ResultSet` type of `TYPE_FORWARD_ONLY` type (which is the default). `TYPE_FORWARD_ONLY` result sets can only step forward through the ResultSet. -- The query must consist of a single SQL statement. - -## Modifying the Batch Size of a Statement Object - -Limiting the batch size of a `ResultSet` object can speed the retrieval of data and reduce the resources needed by a client-side application. Listing 1.6 creates a `Statement` object with a batch size limited to five rows: - -```text -// Make sure autocommit is off -conn.setAutoCommit(false); - -Statement stmt = conn.createStatement(); -// Set the Batch Size. -stmt.setFetchSize(5); - -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -while (rs.next()) - System.out.println("a row was returned."); - -rs.close(); -stmt.close(); -``` - -The call to `conn.setAutoCommit(false)` ensures that the server won’t close the `ResultSet` before you have a chance to retrieve the first row. After preparing the `Connection`, you can construct a `Statement` object: - -```text -Statement stmt = db.createStatement(); -``` - -The following code sets the batch size to five (rows) before executing the query: - -```text -stmt.setFetchSize(5); - -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -For each row in the `ResultSet` object, the call to `println()` prints `a row was returned`. - -```text -System.out.println("a row was returned."); -``` - -Remember, while the `ResultSet` contains all of the rows in the table, they are only fetched from the server five rows at a time. From the client’s point of view, the only difference between a `batched` result set and an `unbatched` result set is that a batched result may return the first row in less time. - -Next, we will look at another feature (`the PreparedStatement`) that you can use to increase the performance of certain JDBC applications. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx deleted file mode 100644 index 68de3fe59e2..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx +++ /dev/null @@ -1,330 +0,0 @@ ---- -title: "Executing Stored Procedures" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_stored_procedures.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_stored_procedures.html" ---- - - - -A stored procedure is a module that is written in EDB’s SPL and stored in the database. A stored procedure may define input parameters to supply data to the procedure and output parameters to return data from the procedure. Stored procedures execute within the server and consist of database access commands (SQL), control statements, and data structures that manipulate the data obtained from the database. - -Stored procedures are especially useful when extensive data manipulation is required before storing data from the client. It is also efficient to use a stored procedure to manipulate data in a batch program. - -## Invoking Stored Procedures - -The `CallableStatement` class provides a way for a Java program to call stored procedures. A `CallableStatement` object can have a variable number of parameters used for input (`IN` parameters), output (`OUT` parameters), or both (`IN OUT` parameters). - -The syntax for invoking a stored procedure in JDBC is shown below. Note that the square brackets indicate optional parameters; they are not part of the command syntax. - -```text -{call procedure_name([?, ?, ...])} -``` - -The syntax to invoke a procedure that returns a result parameter is: - -```text -{? = call procedure_name([?, ?, ...])} -``` - -Each question mark serves as a placeholder for a parameter. The stored procedure determines if the placeholders represent `IN`, `OUT`, or `IN OUT` parameters and the Java code must match. We will show you how to supply values for `IN` (or `IN OUT`) parameters and how to retrieve values returned in `OUT` (or `IN OUT`) parameters in a moment. - -### Executing a Simple Stored Procedure - -Listing 1.7-a shows a stored procedure that increases the salary of each employee by `10%`. `increaseSalary` expects no arguments from the caller and does not return any information: - -```sql -CREATE OR REPLACE PROCEDURE increaseSalary -IS - BEGIN - UPDATE emp SET sal = sal * 1.10; - END; -``` - -Listing 1.7-b demonstrates how to invoke the `increaseSalary` procedure: - -```java -public void SimpleCallSample(Connection con) -{ - try - { - CallableStatement stmt = con.prepareCall("{call increaseSalary()}"); - stmt.execute(); - System.out.println("Stored Procedure executed successfully"); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -To invoke a stored procedure from a Java application, use a `CallableStatement` object. The `CallableStatement` class is derived from the `Statement` class and, like the `Statement` class, you obtain a `CallableStatement` object by asking a `Connection` object to create one for you. To create a `CallableStatement` from a `Connection`, use the `prepareCall()` method: - -```java -CallableStatement stmt = con.prepareCall("{call increaseSalary()}"); -``` - -As the name implies, the `prepareCall()` method prepares the statement, but does not execute it. As you will see in the next example, an application typically binds parameter values between the call to `prepareCall()` and the call to `execute()`. To invoke the stored procedure on the server, call the `execute()` method. - -```java -stmt.execute(); -``` - -This stored procedure (`increaseSalary`) did not expect any `IN` parameters and did not return any information to the caller (using `OUT` parameters) so invoking the procedure is simply a matter of creating a `CallableStatement` object and then calling that object’s `execute()` method. - -The next section demonstrates how to invoke a stored procedure that requires data (`IN` parameters) from the caller. - -### Executing Stored Procedures with IN parameters - -The code in the next example first creates and then invokes a stored procedure named `empInsert`; `empInsert` requires `IN` parameters that contain employee information: `empno`, `ename`, `job`, `sal`, `comm`, `deptno`, and `mgr`. `empInsert` then inserts that information into the `emp` table. - -Listing 1.8-a creates the stored procedure in the Advanced Server database: - -```sql -CREATE OR REPLACE PROCEDURE empInsert( - pEname IN VARCHAR, - pJob IN VARCHAR, - pSal IN FLOAT4, - pComm IN FLOAT4, -pDeptno IN INTEGER, -pMgr IN INTEGER -) -AS -DECLARE - CURSOR getMax IS SELECT MAX(empno) FROM emp; - max_empno INTEGER := 10; -BEGIN - OPEN getMax; - FETCH getMax INTO max_empno; - INSERT INTO emp(empno, ename, job, sal, comm, deptno, mgr) - VALUES(max_empno+1, pEname, pJob, pSal, pComm, pDeptno, pMgr); - CLOSE getMax; -END; -``` - -Listing 1.8-b demonstrates how to invoke the stored procedure from Java: - -```java -public void CallExample2(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call empInsert(?,?,?,?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setObject(1, new String(c.readLine("Employee Name :"))); - stmt.setObject(2, new String(c.readLine("Job :"))); - stmt.setObject(3, new Float(c.readLine("Salary :"))); - stmt.setObject(4, new Float(c.readLine("Commission :"))); - stmt.setObject(5, new Integer(c.readLine("Department No :"))); - stmt.setObject(6, new Integer(c.readLine("Manager"))); - stmt.execute(); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call EMP_INSERT(?,?,?,?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setObject()` method binds a value to an `IN` or `IN` `OUT` placeholder. Each call to `setObject()` specifies a parameter number and a value to bind to that parameter: - -```java -stmt.setObject(1, new String(c.readLine("Employee Name :"))); -stmt.setObject(2, new String(c.readLine("Job :"))); -stmt.setObject(3, new Float(c.readLine("Salary :"))); -stmt.setObject(4, new Float(c.readLine("Commission :"))); -stmt.setObject(5, new Integer(c.readLine("Department No :"))); -stmt.setObject(6, new Integer(c.readLine("Manager"))); -``` - -After supplying a value for each placeholder, this method executes the statement by calling the `execute()` method. - -### Executing Stored Procedures with OUT parameters - -The next example creates and invokes an SPL stored procedure called `deptSelect`. This procedure requires one `IN` parameter (department number) and returns two `OUT` parameters (the department name and location) corresponding to the department number. The code in Listing 1.9-a creates the `deptSelect` procedure: - -```sql -CREATE OR REPLACE PROCEDURE deptSelect -( - p_deptno IN INTEGER, - p_dname OUT VARCHAR, - p_loc OUT VARCHAR -) -AS -DECLARE - CURSOR deptCursor IS SELECT dname, loc FROM dept WHERE deptno=p_deptno; -BEGIN - OPEN deptCursor; - FETCH deptCursor INTO p_dname, p_loc; - - CLOSE deptCursor; -END; -``` - -Listing 1.9-b shows the Java code required to invoke the `deptSelect` stored procedure: - -```java -public void GetDeptInfo(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call deptSelect(?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setObject(1, new Integer(c.readLine("Dept No :"))); - stmt.registerOutParameter(2, Types.VARCHAR); - stmt.registerOutParameter(3, Types.VARCHAR); - stmt.execute(); - System.out.println("Dept Name: " + stmt.getString(2)); - System.out.println("Location : " + stmt.getString(3)); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call deptSelect(?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setObject()` method binds a value to an `IN` or `IN OUT` placeholder. When calling `setObject()` you must identify a placeholder (by its ordinal number) and provide a value to substitute in place of that placeholder: - -```java -stmt.setObject(1, new Integer(c.readLine("Dept No :"))); -``` - -The JDBC type of each `OUT` parameter must be registered before the `CallableStatement` object can be executed. Registering the JDBC type is done with the `registerOutParameter()` method. - -```java -stmt.registerOutParameter(2, Types.VARCHAR); -stmt.registerOutParameter(3, Types.VARCHAR); -``` - -After executing the statement, the `CallableStatement’s`getter method retrieves the `OUT` parameter values: to retrieve a `VARCHAR` value, use the `getString()` getter method. - -```java -stmt.execute(); -System.out.println("Dept Name: " + stmt.getString(2)); -System.out.println("Location : " + stmt.getString(3)); -``` - -In the current example `GetDeptInfo()` registers two `OUT` parameters and (after executing the stored procedure) retrieves the values returned in the `OUT` parameters. Since both `OUT` parameters are defined as `VARCHAR` values, `GetDeptInfo()` uses the `getString()` method to retrieve the `OUT` parameters. - -## Executing Stored Procedures with IN OUT parameters - -The code in the next example creates and invokes a stored procedure named `empQuery` defined with one `IN` parameter (`p_deptno`), two`IN OUT`parameters (`p_empno` and `p_ename`) and three `OUT` parameters (`p_job`,`p_hiredate` and `p_sal`). `empQuery` then returns information about the employee in the two `IN OUT` parameters and three `OUT` parameters. - -Listing 1.10-a creates a stored procedure named `empQuery` : - -```sql -CREATE OR REPLACE PROCEDURE empQuery -( - p_deptno IN NUMBER, - p_empno IN OUT NUMBER, - p_ename IN OUT VARCHAR2, - p_job OUT VARCHAR2, - p_hiredate OUT DATE, - p_sal OUT NUMBER -) -IS -BEGIN - SELECT empno, ename, job, hiredate, sal - INTO p_empno, p_ename, p_job, p_hiredate, p_sal - FROM emp - WHERE deptno = p_deptno - AND (empno = p_empno - OR ename = UPPER(p_ename)); -END; -``` - -Listing 1.10-b demonstrates invoking the `empQuery` procedure, providing values for the `IN` parameters, and handling the `OUT` and`IN OUT`parameters: - -```java -public void CallSample4(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call empQuery(?,?,?,?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setInt(1, new Integer(c.readLine("Department No:"))); - stmt.setInt(2, new Integer(c.readLine("Employee No:"))); - stmt.setString(3, new String(c.readLine("Employee Name:"))); - stmt.registerOutParameter(2, Types.INTEGER); - stmt.registerOutParameter(3, Types.VARCHAR); - stmt.registerOutParameter(4, Types.VARCHAR); - stmt.registerOutParameter(5, Types.TIMESTAMP); - stmt.registerOutParameter(6, Types.NUMERIC); - stmt.execute(); - System.out.println("Employee No: " + stmt.getInt(2)); - System.out.println("Employee Name: " + stmt.getString(3)); - System.out.println("Job : " + stmt.getString(4)); - System.out.println("Hiredate : " + stmt.getTimestamp(5)); - System.out.println("Salary : " + stmt.getBigDecimal(6)); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call empQuery(?,?,?,?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setInt()` method is a type-specific `setter` method that binds an `Integer` value to an `IN` or `IN OUT` placeholder. The call to `setInt()` specifies a parameter number and provides a value to substitute in place of that placeholder: - -```java -stmt.setInt(1, new Integer(c.readLine("Department No:"))); -stmt.setInt(2, new Integer(c.readLine("Employee No:"))); -``` - -The `setString()` method binds a `String` value to an `IN` or `IN OUT` placeholder: - -```java -stmt.setString(3, new String(c.readLine("Employee Name:"))); -``` - -Before executing the `CallableStatement` , you must register the JDBC type of each `OUT` parameter by calling the `registerOutParameter()` method. - -```java -stmt.registerOutParameter(2, Types.INTEGER); -stmt.registerOutParameter(3, Types.VARCHAR); -stmt.registerOutParameter(4, Types.VARCHAR); -stmt.registerOutParameter(5, Types.TIMESTAMP); -stmt.registerOutParameter(6, Types.NUMERIC); -``` - -Remember, before calling a procedure with an `IN` parameter, you must assign a value to that parameter with a setter method. Before calling a procedure with an `OUT` parameter, you register the type of that parameter; then you can retrieve the value returned by calling a getter method. When calling a procedure that defines an `IN OUT` parameter, you must perform all three actions: - -- Assign a value to the parameter. -- Register the type of the parameter. -- Retrieve the value returned with a getter method. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx deleted file mode 100644 index c81b258451f..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: "Using REF CURSORS with Java" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_ref_cursors_with_java.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_ref_cursors_with_java.html" ---- - - - -A `REF CURSOR` is a cursor variable that contains a pointer to a query result set returned by an `OPEN` statement. Unlike a static cursor, a `REF CURSOR` is not tied to a particular query. You may open the same `REF CURSOR` variable any number of times with the `OPEN` statement containing different queries; each time, a new result set is created for that query and made available via the cursor variable. A `REF CURSOR` can also pass a result set from one procedure to another. - -Advanced Server supports the declaration of both `strongly-typed` and `weakly-typed` `REF CURSORs`. A strongly-typed cursor must declare the `shape` (the type of each column) of the expected result set. You can only use a strongly-typed cursor with a query that returns the declared columns; opening the cursor with a query that returns a result set with a different shape will cause the server to throw an exception. On the other hand, a weakly-typed cursor can work with a result set of any shape. - -To declare a strongly-typed `REF CURSOR`: - -```Text -TYPE IS REF CURSOR RETURN ; -``` - -To declare a weakly-typed `REF_CURSOR`: - -```Text -name SYS_REFCURSOR; -``` - -## Using a REF CURSOR to retrieve a ResultSet - -The stored procedure shown in Listing 1.11-a (`getEmpNames`) builds two `REF CURSORs` on the server; the first `REF CURSOR` contains a list of commissioned employees in the `emp` table, while the second `REF CURSOR` contains a list of salaried employees in the `emp` table: - -Listing 1.11-a - -```text -CREATE OR REPLACE PROCEDURE getEmpNames -( - commissioned IN OUT SYS_REFCURSOR, - salaried IN OUT SYS_REFCURSOR -) -IS -BEGIN - OPEN commissioned FOR SELECT ename FROM emp WHERE comm is NOT NULL; - OPEN salaried FOR SELECT ename FROM emp WHERE comm is NULL; -END; -``` - -The `RefCursorSample()` method (see Listing 1.11-b) invokes the `getEmpName()` stored procedure and displays the names returned in each of the two `REF CURSOR` variables: - -Listing 1.11-b - -```text -public void RefCursorSample(Connection con) -{ - try - { - con.setAutoCommit(false); - String commandText = "{call getEmpNames(?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.registerOutParameter(1, Types.REF); - stmt.registerOutParameter(2, Types.REF); - - stmt.execute(); - ResultSet commissioned = (ResultSet)stmt.getObject(1); - System.out.println("Commissioned employees:"); - while(commissioned.next()) - { - System.out.println(commissioned.getString(1)); - } - - ResultSet salaried = (ResultSet)stmt.getObject(2); - System.out.println("Salaried employees:"); - while(salaried.next()) - { - System.out.println(salaried.getString(1)); - } - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -A `CallableStatement` prepares each `REF CURSOR` (`commissioned` and `salaried`). Each cursor is returned as an `IN OUT` parameter of the stored procedure, `getEmpNames()`: - -```text -String commandText = "{call getEmpNames(?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.REF`) of the first REF CURSOR (`commissioned`) : - -```text -stmt.registerOutParameter(1, Types.REF); -``` - -Another call to `registerOutParameter()` registers the second parameter type (`Types.REF`) of the second REF CURSOR (`salaried`) : - -```text -stmt.registerOutParameter(2, Types.REF); -``` - -A call to `stmt.execute()` executes the statement: - -```text -stmt.execute(); -``` - -The `getObject()` method retrieves the values from the first parameter and casts the result to a `ResultSet`. Then, `RefCursorSample` iterates through the cursor and prints the name of each commissioned employee: - -```text -ResultSet commissioned = (ResultSet)stmt.getObject(1); -while(commissioned.next()) -{ - System.out.println(commissioned.getString(1)); -} -``` - -The same getter method retrieves the `ResultSet` from the second parameter and `RefCursorExample` iterates through that cursor, printing the name of each salaried employee: - -```text -ResultSet salaried = (ResultSet)stmt.getObject(2); -while(salaried.next()) -{ - System.out.println(salaried.getString(1)); -} -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx deleted file mode 100644 index 39858984393..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: "Using BYTEA Data with Java" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_bytea_data_with_java.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_bytea_data_with_java.html" ---- - - - -The `BYTEA` data type stores a binary string in a sequence of bytes; digital ../images and sound files are often stored as binary data. Advanced Server can store and retrieve binary data via the `BYTEA` data type. - -The following Java sample stores `BYTEA` data in an Advanced Server database and then demonstrates how to retrieve that data. The example requires a bit of setup; Listings 1.12-a, 1.12-b, and 1.12-c create the server-side environment for the Java example. - -Listing 1.12-a creates a table (`emp_detail`) that stores `BYTEA` data. `emp_detail` contains two columns: the first column stores an employee’s ID number (type `INT`) and serves as the primary key for the table; the second column stores a photograph of the employee in `BYTEA` format: - -```text -CREATE TABLE emp_detail -( - empno INT4 PRIMARY KEY, - pic BYTEA -); -``` - -Listing 1.12-b creates a procedure (`ADD_PIC`) that inserts a row into the `emp_detail` table: - -```text -CREATE OR REPLACE PROCEDURE ADD_PIC(p_empno IN int4, p_photo IN bytea) AS -BEGIN - INSERT INTO emp_detail VALUES(p_empno, p_photo); -END; -``` - -And finally, Listing 1.12-c creates a function (`GET_PIC`) that returns the photograph for a given employee: - -```text -CREATE OR REPLACE FUNCTION GET_PIC(p_empno IN int4) RETURN BYTEA IS -DECLARE - photo BYTEA; -BEGIN - SELECT pic INTO photo from EMP_DETAIL WHERE empno = p_empno; - RETURN photo; -END; -``` - -## Inserting BYTEA Data into an Advanced Server Database - -Listing 1.13 shows a Java method that invokes the `ADD_PIC` procedure (see Listing 1.12-b) to copy a photograph from the client file system to the `emp_detail` table on the server: - -```text -public void InsertPic(Connection con) -{ - try - { - Console c = System.console(); - int empno = Integer.parseInt(c.readLine("Employee No :")); - String fileName = c.readLine("Image filename :"); - File f = new File(fileName); - - if(!f.exists()) - { - System.out.println("Image file not found. Terminating..."); - return; - } - - CallableStatement stmt = con.prepareCall("{call ADD_PIC(?, ?)}"); - stmt.setInt(1, empno); - stmt.setBinaryStream(2, new FileInputStream(f), (int)f.length()); - stmt.execute(); - System.out.println("Added image for Employee "+empno); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -`InsertPic()` prompts the user for an employee number and the name of an image file: - -```text -int empno = Integer.parseInt(c.readLine("Employee No :")); -String fileName = c.readLine("Image filename :"); -``` - -If the requested file does not exist, `InsertPic()` displays an error message and terminates: - -```text -File f = new File(fileName); - -if(!f.exists()) -{ - System.out.println("Image file not found. Terminating..."); - return; -} -``` - -Next, `InsertPic()` prepares a `CallableStatement` object (`stmt`) that calls the `ADD_PIC` procedure. The first placeholder (?) represents the first parameter expected by `ADD_PIC (p_empno)`; the second placeholder represents the second parameter (`p_photo`). To provide actual values for those placeholders, `InsertPic()` calls two setter methods. Since the first parameter is of type `INTEGER`, `InsertPic()` calls the `setInt()` method to provide a value for `p_empno`. The second parameter is of type `BYTEA`, so `InsertPic()` uses a binary setter method; in this case, the method is `setBinaryStream()`: - -```text -CallableStatement stmt = con.prepareCall("{call ADD_PIC(?, ?)}"); -stmt.setInt(1, empno); -stmt.setBinaryStream(2 ,new FileInputStream(f), f.length()); -``` - -Now that the placeholders are bound to actual values, `InsertPic()` executes the `CallableStatement`: - -```text -stmt.execute(); -``` - -If all goes well, `InsertPic()` displays a message verifying that the image has been added to the table. If an error occurs, the `catch` block displays a message to the user: - -```text -System.out.println("Added image for Employee \""+empno); -catch(Exception err) -{ - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); -} -``` - -## Retrieving BYTEA Data from an Advanced Server Database - -Now that you know how to insert `BYTEA` data from a Java application, Listing 1.14 demonstrates how to retrieve `BYTEA` data from the server: - -```text -public static void GetPic(Connection con) -{ - try - { - Console c = System.console(); - int empno = Integer.parseInt(c.readLine("Employee No :")); - CallableStatement stmt = con.prepareCall("{?=call GET_PIC(?)}"); - stmt.setInt(2, empno); - stmt.registerOutParameter(1, Types.BINARY); - stmt.execute(); - byte[] b = stmt.getBytes(1); - - String fileName = c.readLine("Destination filename :"); - FileOutputStream fos = new FileOutputStream(new File(fileName)); - fos.write(b); - fos.close(); - System.out.println("File saved at \""+fileName+"\""); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -`GetPic()` starts by prompting the user for an employee ID number: - -```text -int empno = Integer.parseInt(c.readLine("Employee No :")); -``` - -Next, `GetPic()` prepares a `CallableStatement` with one `IN` parameter and one `OUT` parameter. The first parameter is the `OUT` parameter that will contain the photograph retrieved from the database. Since the photograph is `BYTEA` data, `GetPic()` registers the parameter as a `Type.BINARY`. The second parameter is the `IN` parameter that holds the employee number (an `INT`), so `GetPic()` uses the `setInt()` method to provide a value for the second parameter. - -```text -CallableStatement stmt = con.prepareCall("{?=call GET_PIC(?)}"); -stmt.setInt(2, empno); -stmt.registerOutParameter(1, Types.BINARY); -``` - -Next, `GetPic()` uses the `getBytes` getter method to retrieve the `BYTEA` data from the `CallableStatement`: - -```text -stmt.execute(); -byte[] b = stmt.getBytes(1); -``` - -The program prompts the user for the name of the file where it will store the photograph: - -```text -String fileName = c.readLine("Destination filename :"); -``` - -The `FileOutputStream` object writes the binary data that contains the photograph to the destination filename: - -```text -FileOutputStream fos = new FileOutputStream(new File(fileName)); -fos.write(b); -fos.close(); -``` - -Finally, `GetPic()` displays a message confirming that the file has been saved at the new location: - -```text -System.out.println("File saved at \""+fileName+"\""); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx deleted file mode 100644 index f89253786a3..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx +++ /dev/null @@ -1,286 +0,0 @@ ---- -title: "Using Object Types and Collections with Java" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_object_types_and_collections_with_java.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_object_types_and_collections_with_java.html" ---- - - - -The SQL `CREATE TYPE` command is used to create a user-defined `object type`, which is stored in the Advanced Server database. The `CREATE TYPE` command is also used to create a `collection`, commonly referred to as an `array`, which is also stored in the Advanced Server database. - -These user-defined types can then be referenced within SPL procedures, SPL functions, and Java programs. - -The basic object type is created with the `CREATE TYPE AS OBJECT` command along with optional usage of the `CREATE TYPE BODY` command. - -A `nested table type` collection is created using the `CREATE TYPE AS TABLE OF` command. A `varray type` collection is created with the `CREATE TYPE VARRAY` command. - -Example usage of an object type and a collection are shown in the following sections. - -Listing 1.15 shows a Java method used by both examples to establish the connection to the Advanced Server database. - -```text -public static Connection getEDBConnection() throws - ClassNotFoundException, SQLException { - String url = "jdbc:edb://localhost:5444/test"; - String user = "enterprisedb"; - String password = "edb"; - Class.forName("com.edb.Driver"); - Connection conn = DriverManager.getConnection(url, user, password); - return conn; -} -``` - -## Using an Object Type - -Create the object types in the Advanced Server database. Object type `addr_object_type` defines the attributes of an address: - -```text -CREATE OR REPLACE TYPE addr_object_type AS OBJECT -( - street VARCHAR2(30), - city VARCHAR2(20), - state CHAR(2), - zip NUMBER(5) -); -``` - -Object type `emp_obj_typ` defines the attributes of an employee. Note that one of these attributes is object type `ADDR_OBJECT_TYPE` as previously described. The object type body contains a method that displays the employee information: - -```text -CREATE OR REPLACE TYPE emp_obj_typ AS OBJECT -( - empno NUMBER(4), - ename VARCHAR2(20), - addr ADDR_OBJECT_TYPE, - MEMBER PROCEDURE display_emp(SELF IN OUT emp_obj_typ) -); - -CREATE OR REPLACE TYPE BODY emp_obj_typ AS - MEMBER PROCEDURE display_emp (SELF IN OUT emp_obj_typ) - IS - BEGIN - DBMS_OUTPUT.PUT_LINE('Employee No : ' || SELF.empno); - DBMS_OUTPUT.PUT_LINE('Name : ' || SELF.ename); - DBMS_OUTPUT.PUT_LINE('Street : ' || SELF.addr.street); - DBMS_OUTPUT.PUT_LINE('City/State/Zip: ' || SELF.addr.city || ', ' || - SELF.addr.state || ' ' || LPAD(SELF.addr.zip,5,'0')); - END; -END; -``` - -Listing 1.16 is a Java method that includes these user-defined object types: - -```text -public static void testUDT() throws SQLException { - Connection conn = null; - try { - conn = getEDBConnection(); - String commandText = "{call emp_obj_typ.display_emp(?)}"; - CallableStatement stmt = conn.prepareCall(commandText); - - // initialize emp_obj_typ structure - // create addr_object_type structure - Struct address = conn.createStruct("addr_object_type", - new Object[]{"123 MAIN STREET","EDISON","NJ",8817}); - Struct emp = conn.createStruct("emp_obj_typ", - new Object[]{9001,"JONES", address}); - - // set emp_obj_typ type param - stmt.registerOutParameter(1, Types.STRUCT, "emp_obj_typ"); - stmt.setObject(1, emp); - stmt.execute(); - - // extract emp_obj_typ object - emp = (Struct)stmt.getObject(1); - Object[] attrEmp = emp.getAttributes(); - System.out.println("empno: " + attrEmp[0]); - System.out.println("ename: " + attrEmp[1]); - - // extract addr_object_type attributes - address = (Struct) attrEmp[2]; - Object[] attrAddress = address.getAttributes(); - System.out.println("street: " + attrAddress[0]); - System.out.println("city: " + attrAddress[1]); - System.out.println("state: " + attrAddress[2]); - System.out.println("zip: " + attrAddress[3]); - } catch (ClassNotFoundException cnfe) { - System.err.println("Error: " + cnfe.getMessage()); - } finally { - if (conn != null) { - conn.close(); - } - } -} -``` - -A `CallableStatement` object is prepared based on the `display_emp()` method of the `emp_obj_typ` object type: - -```text -String commandText = "{call emp_obj_typ.display_emp(?)}"; -CallableStatement stmt = conn.prepareCall(commandText); -``` - -`createStruct()` initializes and creates instances of object types `addr_object_type` and `emp_obj_typ` named `address` and `emp`, respectively: - -```text -Struct address = conn.createStruct("addr_object_type", - new Object[]{"123 MAIN STREET","EDISON","NJ",8817}); -Struct emp = conn.createStruct("emp_obj_typ", - new Object[]{9001,"JONES", address}); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.STRUCT`) of `emp_obj_typ`: - -```text -stmt.registerOutParameter(1, Types.STRUCT, "emp_obj_typ"); -``` - -The `setObject()` method binds the object instance `emp` to the `IN OUT` placeholder. - -```text -stmt.setObject(1, emp); -``` - -A call to `stmt.execute()` executes the call to the `display_emp()` method: - -```text -stmt.execute(); -``` - -`getObject()` retrieves the `emp_obj_typ` object type. The attributes of the `emp` and `address` object instances are then retrieved and displayed: - -```text -emp = (Struct)stmt.getObject(1); -Object[] attrEmp = emp.getAttributes(); -System.out.println("empno: " + attrEmp[0]); -System.out.println("ename: " + attrEmp[1]); - -address = (Struct) attrEmp[2]; -Object[] attrAddress = address.getAttributes(); -System.out.println("street: " + attrAddress[0]); -System.out.println("city: " + attrAddress[1]); -System.out.println("state: " + attrAddress[2]); -System.out.println("zip: " + attrAddress[3]); -``` - -## Using a Collection - -Create collection types `NUMBER_ARRAY` and `CHAR_ARRAY` in the Advanced Server database: - -```text -CREATE OR REPLACE TYPE NUMBER_ARRAY AS TABLE OF NUMBER; -CREATE OR REPLACE TYPE CHAR_ARRAY AS TABLE OF VARCHAR(50); -``` - -Listing 1.17-a is an SPL function that uses collection types `NUMBER_ARRAY` and `CHAR_ARRAY` as `IN` parameters and `CHAR_ARRAY` as the `OUT` parameter. - -The function concatenates the employee ID from the `NUMBER_ARRAY IN` parameter with the employee name in the corresponding row from the `CHAR_ARRAY IN` parameter. The resulting concatenated entries are returned in the `CHAR_ARRAY OUT` parameter. - -```text -CREATE OR REPLACE FUNCTION concatEmpIdName -( - arrEmpIds NUMBER_ARRAY, - arrEmpNames CHAR_ARRAY -) RETURN CHAR_ARRAY -AS -DECLARE - i INTEGER := 0; - arrEmpIdNames CHAR_ARRAY; -BEGIN - arrEmpIdNames := CHAR_ARRAY(NULL,NULL); - FOR i IN arrEmpIds.FIRST..arrEmpIds.LAST LOOP - arrEmpIdNames(i) := arrEmpIds(i) || ' ' || arrEmpNames(i); - END LOOP; - RETURN arrEmpIdNames; -END; -``` - -Listing 1.17-b is a Java method that calls the Listing 1.17-a function, passing and retrieving the collection types: - -```text -public static void testTableOfAsInOutParams() throws SQLException { - Connection conn = null; - try { - conn = getEDBConnection(); - String commandText = "{? = call concatEmpIdName(?,?)}"; - CallableStatement stmt = conn.prepareCall(commandText); - - // create collections to specify employee id and name values - Array empIdArray = conn.createArrayOf("integer", - new Integer[]{7900, 7902}); - Array empNameArray = conn.createArrayOf("varchar", - new String[]{"JAMES", "FORD"}); - - // set TABLE OF VARCHAR as OUT param - stmt.registerOutParameter(1, Types.ARRAY); - - // set TABLE OF INTEGER as IN param - stmt.setObject(2, empIdArray, Types.OTHER); - - // set TABLE OF VARCHAR as IN param - stmt.setObject(3, empNameArray, Types.OTHER); - stmt.execute(); - java.sql.Array empIdNameArray = stmt.getArray(1); - String[] emps = (String[]) empIdNameArray.getArray(); - - System.out.println("items length: " + emps.length); - System.out.println("items[0]: " + emps[0].toString()); - System.out.println("items[1]: " + emps[1].toString()); - - } catch (ClassNotFoundException cnfe) { - System.err.println("Error: " + cnfe.getMessage()); - } finally { - if (conn != null) { - conn.close(); - } - } -} -``` - -A `CallableStatement` object is prepared to invoke the `concatEmpIdName()` function: - -```text -String commandText = "{? = call concatEmpIdName(?,?)}"; -CallableStatement stmt = conn.prepareCall(commandText); -``` - -`createArrayOf()` initializes and creates collections named `empIdArray` and `empNameArray`: - -```text -Array empIdArray = conn.createArrayOf("integer", - new Integer[]{7900, 7902}); -Array empNameArray = conn.createArrayOf("varchar", - new String[]{"JAMES", "FORD"}); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.ARRAY`) of the `OUT` parameter: - -```text -stmt.registerOutParameter(1, Types.ARRAY); -``` - -The `setObject()` method binds the collections `empIdArray` and `empNameArray` to the `IN` placeholders: - -```text -stmt.setObject(2, empIdArray, Types.OTHER); -stmt.setObject(3, empNameArray, Types.OTHER); -``` - -A call to `stmt.execute()` invokes the `concatEmpIdName()` function: - -```text -stmt.execute(); -``` - -`getArray()` retrieves the collection returned by the function. The first two rows consisting of the concatenated employee IDs and names are displayed: - -```text -java.sql.Array empIdNameArray = stmt.getArray(1); -String[] emps = (String[]) empIdNameArray.getArray(); -System.out.println("items length: " + emps.length); -System.out.println("items[0]: " + emps[0].toString()); -System.out.println("items[1]: " + emps[1].toString()); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx deleted file mode 100644 index 1406c71211a..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "Asynchronous Notification Handling with NoticeListener" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/asynchronous_notification_handling_with_noticelistener.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/asynchronous_notification_handling_with_noticelistener.html" ---- - - - -The Advanced Server JDBC Connector provides asynchronous notification handling functionality. A `notification` is a message generated by the server when an SPL (or PL/pgSQL) program executes a `RAISE NOTICE` statement. Each notification is sent from the server to the client application. To intercept a notification in a JDBC client, an application must create a `NoticeListener` object (or, more typically, an object derived from `NoticeListener`). - -It is important to understand that a notification is sent to the client as a result of executing an SPL (or PL/pgSQL) program. To generate a notification, you must execute an SQL statement that invokes a stored procedure, function, or trigger: the notification is delivered to the client as the SQL statement executes. Notifications work with any type of statement object; `CallableStatement` objects, `PreparedStatement` objects, or simple `Statement` objects. A JDBC program intercepts a notification by associating a `NoticeListener` with a `Statement` object. When the `Statement` object executes an SQL statement that raises a notice, JDBC invokes the `noticeReceived()` method in the associated `NoticeListener`. - -Listing 1.18-a shows an SPL procedure that loops through the `emp` table and gives each employee a 10% raise. As each employee is processed, `adjustSalary` executes a `RAISE NOTICE` statement (in this case, the message contained in the notification reports progress to the client application): - -```text -CREATE OR REPLACE PROCEDURE adjustSalary -IS - v_empno NUMBER(4); - v_ename VARCHAR2(10); - CURSOR emp_cur IS SELECT empno, ename FROM emp; -BEGIN - OPEN emp_cur; - LOOP - FETCH emp_cur INTO v_empno, v_ename; - EXIT WHEN emp_cur%NOTFOUND; - - UPDATE emp SET sal = sal * 1.10 WHERE empno = v_empno; - RAISE NOTICE 'Salary increased for %', v_ename; - END LOOP; - CLOSE emp_cur; -END; -``` - -Listing 1.18-b shows how to create a `NoticeListener` that intercepts notifications in a JDBC application: - -```text -public void NoticeExample(Connection con) -{ - CallableStatement stmt; - try - { - stmt = con.prepareCall("{call adjustSalary()}"); - - MyNoticeListener listener = new MyNoticeListener(); - ((BaseStatement)stmt).addNoticeListener(listener); - stmt.execute(); - System.out.println("Finished"); - } - catch (SQLException e) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - e.printStackTrace(); - } -} -class MyNoticeListener implements NoticeListener -{ - public MyNoticeListener() - { - } - - public void noticeReceived(SQLWarning warn) - { - System.out.println("NOTICE: "+ warn.getMessage()); - } -} -``` - -The `NoticeExample()` method is straightforward; it expects a single argument, a `Connection` object, from the caller: - -```text -public void NoticeExample(Connection con) -``` - -`NoticeExample()` begins by preparing a call to the `adjustSalary` procedure shown in example 1.10-a. As you would expect, `con.prepareCall()` returns a `CallableStatement` object. Before executing the `CallableStatement`, you must create an object that implements the `NoticeListener` interface and add that object to the list of `NoticeListeners` associated with the `CallableStatement`: - -```text -CallableStatement stmt = con.prepareCall("{call adjustSalary()}"); -MyNoticeListener listener = new MyNoticeListener(); -((BaseStatement)stmt).addNoticeListener(listener); -``` - -Once the `NoticeListener` is in place, `NoticeExample` method executes the `CallableStatement` (invoking the `adjustSalary` procedure on the server) and displays a message to the user: - -```text -stmt.execute(); -System.out.println("Finished"); -``` - -Each time the `adjustSalary` procedure executes a `RAISE NOTICE` statement, the server sends the text of the message (`"Salary increased for ..."`) to the `Statement` (or derivative) object in the client application. JDBC invokes the `noticeReceived()` method (possibly many times) `before` the call to `stmt.execute()` completes. - -```text -class MyNoticeListener implements NoticeListener -{ - public MyNoticeListener() - { - } - - public void noticeReceived(SQLWarning warn) - { - System.out.println("NOTICE: "+ warn.getMessage()); - } -} -``` - -When JDBC calls the `noticeReceived()` method, it creates an `SQLWarning` object that contains the text of the message generated by the `RAISE NOTICE` statement on the server. - -Notice that each `Statement` object keeps a `list` of `NoticeListeners` . When the JDBC driver receives a notification from the server, it consults the list maintained by the `Statement` object. If the list is empty, the notification is saved in the `Statement` object (you can retrieve the notifications by calling `stmt.getWarnings()` once the call to `execute()` completes). If the list is not empty, the JDBC driver delivers an `SQLWarning` to each listener, in the order in which the listeners were added to the `Statement` . diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/index.mdx deleted file mode 100644 index 8a889d05748..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/08_advanced_jdbc_connector_functionality/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Advanced JDBC Connector Functionality" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_jdbc_connector_functionality.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_jdbc_connector_functionality.html" ---- - - - -The previous example created a graphical user interface that displayed a result set in a `JTable`. Now we will switch gears and show you some of the more advanced features of the Advanced Server JDBC Connector. - -To avoid unnecessary clutter, the rest of the code samples in this document will use the console to interact with the user instead of creating a graphical use interface. - -
- -reducing_client-side_resource_requirements using_preparedstatements_to_send_sql_commands executing_stored_procedures using_ref_cursors_with_java using_bytea_data_with_java using_object_types_and_collections_with_java asynchronous_notification_handling_with_noticelistener - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx deleted file mode 100644 index 266a5fbda86..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Configuring the Server" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_server.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_server.html" ---- - - - -For information about configuring PostgreSQL or Advanced Server for SSL, refer to: - - - -!!! Note - Before you access your SSL enabled server from Java, ensure that you can log in to your server via `edb-psql`. The sample output should look similar to the one shown below if you have established a SSL connection: - - ```text - $ ./bin/edb-psql -U enterprisedb -d edb - psql.bin (12.0.1) - SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) - Type "help" for help. - - edb=# - ``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx deleted file mode 100644 index c60856675d3..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Configuring the Client" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_client.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_client.html" ---- - - - -There are a number of connection parameters for configuring the client for SSL. To know more about the SSL Connection parameters and Additional Connection Properties, refer to [Section 5.2](../../05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/#connecting_to_the_database). - -In this section, you will learn more about the behavior of ssl connection parameter when passed with different values. When you pass the connection parameter `ssl=true` into the driver, the driver validates the SSL certificate and verifies the hostname. On contrary to this behavior, using `libpq` defaults to a non-validating SSL connection. - -You can get better control of the SSL connection using the `sslmode` connection parameter. This parameter is the same as the `libpq sslmode` parameter and the existing SSL implements the following sslmode connection parameters. - -## sslmode Connection Parameters - -**sslmode=require** - -This mode makes the encryption mandatory and also requires the connection to fail if it can’t be encrypted. The server is configured to accept SSL connections for this Host/IP address and that the server recognizes the client certificate. - -!!! Note - In this mode, the JDBC driver accepts all server certificates. - -**sslmode=verify-ca** - -If `sslmode=verify-ca`, the server is verified by checking the certificate chain up to the root certificate stored on the client. - -**sslmode=verify-full** - -If `sslmode=verify-full`, the server host name is verified to make sure it matches the name stored in the server certificate. The SSL connection fails if the server certificate cannot be verified. This mode is recommended in most security-sensitive environments. - -In the case where the certificate validation is failing you can try `sslcert=` and `LibPQFactory` will not send the client certificate. If the server is not configured to authenticate using the certificate it should connect. - -The location of the client certificate, client key and root certificate can be overridden with the `sslcert`, `sslkey`, and `sslrootcert` settings respectively. These default to `/defaultdir/postgresql.crt`, `/defaultdir/postgresql.pk8`, and `/defaultdir/root.crt` respectively where defaultdir is ${user.home}/.postgresql/ in unix systems and %appdata%/postgresql/ on windows. - -In this mode, when establishing a SSL connection the JDBC driver will validate the server's identity preventing "man in the middle" attacks. It does this by checking that the server certificate is signed by a trusted authority, and that the host you are connecting to, is the same as the hostname in the certificate. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx deleted file mode 100644 index 7f68b29805f..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Testing the SSL JDBC Connection" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/testing_the_ssl_jdbc_connection.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/testing_the_ssl_jdbc_connection.html" ---- - - - -If you are using Java's default mechanism (not `LibPQFactory`) to create the SSL connection, you need to make the server certificate available to Java, which can be achieved by implementing steps given below: - -1. Set the following property in the Java program. - - String url=“jdbc:edb://localhost/test?user=fred&password=secret&ssl=true”; - -2. Convert the server certificate to Java format: - - `$ openssl x509 -in server.crt -out server.crt.der -outform der` - -3. Import this certificate into Java's system truststore. - - ```text - $ keytool -keystore $JAVA_HOME/lib/security/cacerts -alias postgresql-import -file server.crt.der - ``` - -4. If you do not have access to the system cacerts truststore, create your own truststore as below: - - ```text - $ keytool -keystore mystore -alias postgresql -import -file server.crt.der - ``` - -5. Start your Java application and test the program. - - ```text - $ java -Djavax.net.ssl.trustStore=mystore com.mycompany.MyApp - ``` - -For example: - -```text -$java -classpath .:/usr/edb/jdbc/edb-jdbc18.jar– -Djavax.net.ssl.trustStore=mystore pg_test2 public -``` - -!!! Note - To troubleshoot connection issues, add `-Djavax.net.debug=ssl` to the java command. - -## Using SSL without Certificate Validation - -By default the combination of `SSL=true` and setting the connection URL parameter `sslfactory=com.edb.ssl.NonValidatingFactory` encrypts the connection but does not validate the SSL certificate. To enforce certificate validation, you must use a `Custom SSLSocketFactory`. - -For more details about writing a `Custom SSLSocketFactory`, refer to: - - diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx deleted file mode 100644 index 4de0092ad1f..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Using Certificate Authentication Without a Password" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_certificate_authentication_without_a_password.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_certificate_authentication_without_a_password.html" ---- - - - -To use certificate authentication without a password, you must: - -1. Convert the client certificate to DER format. - -```text -$ openssl x509 –in postgresql.crt -out postgresql.crt.der -outform -der -``` - -2. Convert the client key to DER format. - -```text -$ openssl pkcs8 -topk8 -outform DER -in postgresql.key -out -postgresql.key.pk8 –nocrypt -``` - -3. Copy the client files (`postgresql.crt.der`, `postgresql.key.pk8`) and root certificate to the client machine and use the following properties in your java program to test it: - -```text -String url = "jdbc:edb://snvm001:5444/edbstore"; - Properties props = new Properties(); - props.setProperty("user","enterprisedb"); - props.setProperty("ssl","true"); - props.setProperty("sslmode","verify-full"); - props.setProperty("sslcert","postgresql.crt.der"); - props.setProperty("sslkey","postgresql.key.pk8"); - props.setProperty("sslrootcert","root.crt"); -``` - -4. Compile the Java program and test it. - -```text -$ java -Djavax.net.ssl.trustStore=mystore -classpath -.:./edb-jdbc18.jar pg_ssl public -``` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/index.mdx deleted file mode 100644 index 3f454263ebe..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/01_using_ssl/index.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Using SSL" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_ssl.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_ssl.html" ---- - - - -In this section, you will learn about: - -- Configuring the server -- Configuring the client -- Testing the SSL JDBC Connection -- Using SSL without Certificate Validation -- Using Certificate Authentication (without a password) - -
- -configuring_the_server configuring_the_client testing_the_ssl_jdbc_connection using_certificate_authentication_without_a_password - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/02_scram_compatibility.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/02_scram_compatibility.mdx deleted file mode 100644 index 336f0159fbc..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/02_scram_compatibility.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Scram Compatibility" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/scram_compatibility.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/scram_compatibility.html" ---- - - - -The EDB JDBC driver provides SCRAM-SHA-256 support for Advanced Server versions 10, 11, and 12. For JRE/JDK version 1.8, this support is available from EDB JDBC Connector release 42.2.2.1 onwards; for JRE/JDK version 1.7, this support is available from EDB JDBC Connector release 42.2.5 onwards. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/index.mdx deleted file mode 100644 index ae77749d8ec..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/09_security_and_encryption/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Security and Encryption" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/security_and_encryption.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/security_and_encryption.html" ---- - -PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. This requires that OpenSSL is installed on both client and server systems and that support in PostgreSQL is enabled at build time. - - - -
- -using_ssl scram_compatibility - -
diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/10_advanced_server_jdbc_connector_logging.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/10_advanced_server_jdbc_connector_logging.mdx deleted file mode 100644 index 55f39718aa7..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/10_advanced_server_jdbc_connector_logging.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Advanced Server JDBC Connector Logging" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_server_jdbc_connector_logging.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_server_jdbc_connector_logging.html" ---- - -The Advanced Server JDBC Connector supports the use of logging to help resolve issues with the JDBC Connector when used in your application. The JDBC Connector uses the logging APIs of `java.util.logging` that was part of Java since JDK 1.4. For information on `java.util.logging`, see [The PostgreSQL JDBC Driver](https://jdbc.postgresql.org/documentation/head/logging.html). - -!!! Note - Previous versions of the Advanced Server JDBC Connector used a custom mechanism to enable logging, which is now replaced by the use of `java.util.logging` in versions moving forward from community version 42.1.4.1. The older mechanism is no longer available. - -## Enabling Logging with Connection Properties (static) - -You can directly configure logging within the connection properties of the JDBC Connector. The connection properties related to logging are `loggerLevel` and `loggerFile`. - -`loggerLevel` - -Logger level of the driver. Allowed values are `OFF`, `DEBUG`, or `TRACE`. This option enables the `java.util.logging.Logger` level of the driver to correspond to the following Advanced Server JDBC levels: - -| loggerLevel | java.util.logging | -| ----------- | ----------------- | -| OFF | OFF | -| DEBUG | FINE | -| TRACE | FINEST | - -`loggerFile` - -File name output of the logger. The default is `java.util.logging.ConsoleHandler`. The following example sets the logging level to `TRACE (FINEST)` and the log file `to EDB-JDBC.LOG`: - - `jdbc:edb://myhost:5444/mydb?loggerLevel=TRACE&loggerFile=EDB-JDBC.LOG` - -## Enabling Logging with logging.properties (dynamic) - -You can use logging properties to configure the driver dynamically (for example, when using the JDBC Connector with an application server such as Tomcat, JBoss, WildFly, etc.), which makes it easier to enable/disable logging at runtime. The following example demonstrates configuring logging dynamically: - -```text -handlers = java.util.logging.FileHandler -//logging level -.level = OFF -``` - -The default file output is in the user’s home directory: - -```text -java.util.logging.FileHandler.pattern = %h/EDB-JDBC%u.log -java.util.logging.FileHandler.limit = 5000000 -java.util.logging.FileHandler.count = 20 -java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.level = FINEST java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n -``` - -Use the following command to set the logging level for the JDBC Connector to FINEST (maps to `loggerLevel`): - - `com.edb.level=FINEST` - -Then, execute the application with the logging configuration: - - `java –jar -Djava.util.logging.config.file=logging.properties run.jar` diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/11_reference_jdbc_data_types.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/11_reference_jdbc_data_types.mdx deleted file mode 100644 index e3615243549..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/11_reference_jdbc_data_types.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Reference - JDBC Data Types" - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/reference_jdbc_data_types.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/reference_jdbc_data_types.html" ---- - - - -The following table lists the JDBC data types supported by Advanced Server and the JDBC connector. If you are binding to an Advanced Server type (shown in the middle column) using the `setObject()` method, supply a JDBC value of the type shown in the left column. When you retrieve data, the `getObject()` method will return the object type listed in the right-most column: - -| JDBC Type | Advanced Server Type | getObject() returns | -| -------------------- | ---------------------- | ------------------------------------------ | -| INTEGER | INT4 | java.lang.Integer | -| TINYINT, SMALLINT | INT2 | java.lang.Integer | -| BIGINT | INT8 | java.lang.Long | -| REAL | FLOAT4 | java.lang.Float | -| DOUBLE, FLOAT | FLOAT8 | java.lang.Double (Float is same as double) | -| DECIMAL, NUMERIC | NUMERIC | java.math.BigDecimal | -| CHAR | BPCHAR | java.lang.String | -| VARCHAR, LONGVARCHAR | VARCHAR | java.lang.String | -| DATE | DATE | java.sql.Date | -| TIME | TIME, TIMETZ | java.sql.Timestamp | -| TIMESTAMP | TIMESTAMP, TIMESTAMPTZ | java.sql.Timestamp | -| BINARY | BYTEA | byte\[](primitive) | -| BOOLEAN, BIT | BOOL | java.lang.Boolean | -| Types.REF | REFCURSOR | java.sql.ResultSet | -| Types.REF_CURSOR | REFCURSOR | java.sql.ResultSet | -| Types.OTHER | REFCURSOR | java.sql.ResultSet | -| Types.OTHER | UUID | java.util.UUID | -| Types.SQLXML | XML | java.sql.SQLXML | - -!!! Note - `Types.REF_CURSOR` is only supported for JRE 4.2. - -`Types.OTHER` is not only used for UUID, but is also used if you do not specify any specific type and allow the server or the JDBC driver to determine the type. If the parameter is an instance of `java.util.UUID`, the driver determines the appropriate internal type and sends it to the server. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/core_classes_and_interfaces.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/core_classes_and_interfaces.png deleted file mode 100755 index 0b23a61e5a2..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/core_classes_and_interfaces.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2f57e25675a0a63feb0a7b4ec5bf30789c3e0532082300c9e7ad01cd3168d9f -size 13872 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/drivermanager_drivers.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/drivermanager_drivers.png deleted file mode 100755 index bf3c7dd87bd..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/drivermanager_drivers.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0299cd7a34a8bf56b1bb830012727deffa380d9f41a3d0e113ee2880032ff793 -size 12062 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_class_relationships.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_class_relationships.png deleted file mode 100755 index fd2c13c36c4..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_class_relationships.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c45f3033cc5aad9c7063cf56d8c2dd07c8bf370139125c54ee567bf7b3b35125 -size 56793 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_complete.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_complete.png deleted file mode 100755 index 1df118eaba4..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_complete.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d356fb22eb767301f0a32bfff7e35d3187add1b605261911bb4d6e3b96719674 -size 319331 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_dialog.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_dialog.png deleted file mode 100755 index 1fe21286260..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_dialog.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbd0b71eb97287550fa0854685294719e17ac967d50b3c5c90ec554c1594881c -size 27533 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_wizard.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_wizard.png deleted file mode 100755 index 86e252a41ca..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/jdbc_installation_wizard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a08ce10f35f93dbdb419b4329e340f7bde0e705cb25683512007d1874be89c6 -size 265440 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/ready_to_install.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/ready_to_install.png deleted file mode 100755 index e3a38c7bf9c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/ready_to_install.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc9d815a3227f0749ade3d91944de68c3a1fad1213da387d2c27563284d6c790 -size 23188 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/selecting_the_connectors_installer.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/selecting_the_connectors_installer.png deleted file mode 100755 index fdbaf5d3cfe..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/selecting_the_connectors_installer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06b88193e81437e2d6e58e2f2d78498df6148f39ed9af97e4014de0c8b5d78bc -size 167172 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/starting_stackbuilder_plus.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/starting_stackbuilder_plus.png deleted file mode 100755 index 11665300652..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/starting_stackbuilder_plus.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce6bcefb865ca14239fb7e0e2ac5149ed56251cfbc5153869070d039f70857c6 -size 91989 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/images/the_showemployees_window.png b/product_docs/docs/jdbc_connector/42.2.12.3/images/the_showemployees_window.png deleted file mode 100755 index 79d55ed1b4d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/images/the_showemployees_window.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1a2463d505c4d939977a201f1beaa4ce84b4e1c2259bceaab146af0ab6d1d06 -size 18945 diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/index.mdx b/product_docs/docs/jdbc_connector/42.2.12.3/index.mdx deleted file mode 100644 index 1c798e98389..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.12.3/index.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "EDB Postgres Advanced Server JDBC Connector Guide" -directoryDefaults: - description: "EDB JDBC Connector Version 42.2.12.3 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/index.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/conclusion.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/genindex.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/whats_new.html" - - "/edb-docs/p/jdbc-connector/42.2.12.3" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/genindex.html" - - "/edb-docs/p/jdbc-connector/42.2.12.1" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/whats_new.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/conclusion.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/index.html" ---- - -The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. This guide provides installation instructions, usage instructions, and examples that demonstrate the Advanced Server specific functionality of the JDBC Connector. - -The EDB JDBC connector is written in Java and conforms to Sun's JDK architecture. For more information, see [JDBC Driver Types](03_advanced_server_jdbc_connector_overview/#jdbc-driver-types) - -The EDB JDBC connector is built on and supports all of the functionality of the PostgreSQL community driver. For more information about the features and functionality of the driver, please refer to the community [documentation](https://jdbc.postgresql.org/documentation/head/index.html). - -
- -release_notes requirements_overview advanced_server_jdbc_connector_overview installing_and_configuring_the_jdbc_connector using_the_advanced_server_jdbc_connector_with_java_applications executing_sql_commands_with_executeUpdate() adding_a_graphical_interface_to_a_java_program advanced_jdbc_connector_functionality security_and_encryption advanced_server_jdbc_connector_logging reference_jdbc_data_types conclusion - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/02_requirements_overview.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/02_requirements_overview.mdx deleted file mode 100644 index 0f3ad1c25fc..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/02_requirements_overview.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Requirements Overview" - ---- - - - -## Supported Versions - -The EDB JDBC Connector is certified with Advanced Server version 9.6 and above. - -## Supported Platforms - -The EDB JDBC Connector native packages are supported on the following 64 bit Linux platforms: - - -- RHEL and CentOS (x86_64) 7.x -- RHEL and Rocky Linux and AlmaLinux (x86_64) 8.x -- OL Linux 7.x and 8.x -- PPC-LE 8 running RHEL or CentOS 7.x -- SLES 12.x -- Debian 9.x and 10.x -- Ubuntu 18.04 and Ubuntu 20.4 LTS - -The EDB JDBC Connector graphical installers are supported on the following Windows platforms: - -64-bit Windows: - -- Windows Server 2019 -- Windows Server 2016 -- Windows Server 2012 R2 -- Windows 10 -- Windows 8.1 - -32-bit Windows: - -- Windows 10 -- Windows 8.1 - -## Supported JDK Distribution - -Java Virtual Machine (JVM): Java SE 8 or higher (LTS version), including Oracle JDK, OpenJDK, and IBM SDK (Java) distributions. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/03_advanced_server_jdbc_connector_overview.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/03_advanced_server_jdbc_connector_overview.mdx deleted file mode 100644 index 82294f6a93a..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/03_advanced_server_jdbc_connector_overview.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Advanced Server JDBC Connector Overview" - ---- - - - -Sun Microsystems created a standardized interface for connecting Java applications to databases known as Java Database Connectivity (JDBC). The EDB JDBC Connector connects a Java application to a Postgres database. - - - -## JDBC Driver Types - -There are currently four different types of JDBC drivers, each with their own specific implementation, use and limitations. The EDB JDBC Connector is a Type 4 driver. - -Type 1 Driver - -- This driver type is the JDBC-ODBC bridge. -- It is limited to running locally. -- Must have ODBC installed on computer. -- Must have ODBC driver for specific database installed on computer. -- Generally can’t run inside an applet because of Native Method calls. - -Type 2 Driver - -- This is the native database library driver. -- Uses Native Database library on computer to access database. -- Generally can’t run inside an applet because of Native Method calls. -- Must have database library installed on client. - -Type 3 Driver - -- 100% Java Driver, no native methods. -- Does not require pre-installation on client. -- Can be downloaded and configured on-the-fly just like any Java class file. -- Uses a proprietary protocol for talking with a middleware server. -- Middleware server converts from proprietary calls to DBMS specific calls - -Type 4 Driver - -- 100% Java Driver, no native methods. -- Does not require pre-installation on client. -- Can be downloaded and configured on-the-fly just like any Java class file. -- Unlike Type III driver, talks directly with the DBMS server. -- Converts JDBC calls directly to database specific calls. - -## The JDBC Interface - -The following figure shows the core API interfaces in the JDBC specification and how they relate to each other. These interfaces are implemented in the `java.sql` package. - -![JDBC Class Relationships](images/jdbc_class_relationships.png) - -JDBC Class Relationships - -## JDBC Classes and Interfaces - -The core API is composed of classes and interfaces; these classes and interfaces work together as shown below: - -![Core Classes and Interfaces](images/core_classes_and_interfaces.png) - -Core Classes and Interfaces - -## The JDBC DriverManager - -The figure below depicts the role of the `DriverManager` class in a typical JDBC application. The `DriverManager` acts as the bridge between a Java application and the backend database and determines which JDBC driver to use for the target database. - -![DriverManager/Drivers](images/drivermanager_drivers.png) - -DriverManager/Drivers - -## Advanced Server JDBC Connector Compatibility - -This is the current version of the driver. Unless you have unusual requirements (running old applications or JVMs), this is the driver you should be using. This driver supports PostgreSQL 9.6 or higher versions and requires Java 8 or higher versions. It contains support for SSL and the javax.sql package. - -!!! Note - - Deprecated support for Java 1.6 and 1.7. Previous version of EDB JDBC Connector v42.2.12.3 will continue to support Java 1.6 and 1.7 versions. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx deleted file mode 100644 index ae1928a3909..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: "Installing the Connector with an RPM Package" - ---- - - - -You can install the JDBC Connector using an RPM package on the following platforms: - -- [RHEL 7](#rhel7) -- [RHEL 8](#rhel8) -- [CentOS 7](#centos7) -- [Rocky Linux/AlmaLinux 8](#centos8) - - - -## On RHEL 7 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` - -Enable the optional, extras, and HA repositories: - -```text -subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" --enable "rhel-ha-for-rhel-*-server-rpms" -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -``` -yum install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On RHEL 8 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` - -Enable the `codeready-builder-for-rhel-8-\*-rpms` repository: - -```text -ARCH=$( /bin/arch ) -subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms" -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -dnf -y https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the below command to install the JDBC Connector: - -```text -dnf install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On CentOS 7 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -``` - -!!! Note - You may need to enable the `[extras]` repository definition in the `CentOS-Base.repo` file (located in `/etc/yum.repos.d`). - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -yum -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -```text -yum install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - - - -## On Rocky Linux 8 or AlmaLinux 8 - -Before installing the JDBC Connector, you must install the following prerequisite packages, and request credentials from EDB: - -Install the `epel-release` package: - -```text -dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -``` - -Enable the `PowerTools` repository: - -```text -dnf config-manager --set-enabled PowerTools -``` - -You must also have credentials that allow access to the EDB repository. For information about requesting credentials, visit: - - - -After receiving your repository credentials you can: - -1. Create the repository configuration file. -2. Modify the file, providing your user name and password. -3. Install `edb-jdbc`. - -**Creating a Repository Configuration File** - -To create the repository configuration file, assume superuser privileges, and invoke the following command: - -```text -dnf -y install https://yum.enterprisedb.com/edbrepos/edb-repo-latest.noarch.rpm -``` - -The repository configuration file is named `edb.repo`. The file resides in `/etc/yum.repos.d`. - -**Modifying the file, providing your user name and password** - -After creating the `edb.repo` file, use your choice of editor to ensure that the value of the `enabled` parameter is `1`, and replace the `username` and `password` placeholders in the `baseurl` specification with the name and password of a registered EDB user. - -```text -[edb] -name=EnterpriseDB RPMs $releasever - $basearch -baseurl=https://:@yum.enterprisedb.com/edb/redhat/rhel-$releasever-$basearch -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/ENTERPRISEDB-GPG-KEY -``` - -**Installing JDBC Connector** - -After saving your changes to the configuration file, use the following command to install the JDBC Connector: - -```text -dnf install edb-jdbc -``` - -When you install an RPM package that is signed by a source that is not recognized by your system, yum may ask for your permission to import the key to your local server. If prompted, and you are satisfied that the packages come from a trustworthy source, enter `y`, and press `Return` to continue. - -During the installation, yum may encounter a dependency that it cannot resolve. If it does, it will provide a list of the required dependencies that you must manually resolve. - -## Updating an RPM Installation - -If you have an existing JDBC Connector RPM installation, you can use yum or dnf to upgrade your repository configuration file and update to a more recent product version. To update the `edb.repo` file, assume superuser privileges and enter: - -- On RHEL or CentOS 7: - - `yum upgrade edb-repo` - -- On RHEL or Rocky Linu or AlmaLinux 8: - - `dnf upgrade edb-repo` - -yum or dnf will update the `edb.repo` file to enable access to the current EDB repository, configured to connect with the credentials specified in your `edb.repo` file. Then, you can use yum or dnf to upgrade any installed packages: - -- On RHEL or CentOS 7: - - `yum upgrade edb-jdbc` - -- On RHEL or CentOS 8: - - `dnf upgrade edb-jdbc` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx deleted file mode 100644 index 8a1097cd9f8..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "Installing the Connector on an SLES 12 Host" - ---- - - - -To install the connector, you must have credentials that allow access to the EnterpriseDB repository. To request credentials for the repository, visit the EnterpriseDB website at: - - - -You can use the zypper package manager to install a connector on an SLES 12 host. zypper will attempt to satisfy package dependencies as it installs a package, but requires access to specific repositories that are not hosted at EnterpriseDB. - -1. You must assume superuser privileges and stop any firewalls before installing connector. Then, use the following commands to add EnterpriseDB repositories to your system: - - ```text - zypper addrepo https://zypp.enterprisedb.com/suse/edb-sles.repo - ``` - -2. The commands create the repository configuration files in the `/etc/zypp/repos.d` directory. Then, use the following command to refresh the metadata on your SLES host to include the EnterpriseDB repository: - - ```text - zypper refresh - ``` - - When prompted, provide credentials for the repository, and specify a to always trust the provided key, and update the metadata to include the EnterpriseDB repository. - -3. You must also add SUSEConnect and the SUSE Package Hub extension to the SLES host, and register the host with SUSE, allowing access to SUSE repositories. Replace 'REGISTRATION_CODE' and 'EMAIL' with your SUSE registration information. Use the commands: - - ```text - zypper install SUSEConnect - SUSEConnect -r 'REGISTRATION_CODE' -e 'EMAIL' - SUSEConnect -p PackageHub/12.4/x86_64 - SUSEConnect -p sle-sdk/12.4/x86_64 - ``` - -4. Install the following repository for resolving the dependencies: - - ```text - zypper addrepo https://download.opensuse.org/repositories/Apache:/Modules/SLE_12_SP4/Apache:Modules.repo - ``` - -5. Refresh the metadata on your SLES host: - ```text - zypper refresh - ``` - -6. Install OpenJDK (version 1.8) for Java based components: - - ```text - zypper -n install java-1_8_0-openjdk - ``` - -7. Now you can use the zypper utility to install the connector: - - ```text - zypper install edb-jdbc - ``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx deleted file mode 100644 index c4927285baf..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Installing the Connector on a Debian or Ubuntu Host" - ---- - - - -To install a DEB package on a Debian or Ubuntu host, you must have credentials that allow access to the EDB repository. To request credentials for the repository, visit [the EDB website](https://www.enterprisedb.com/repository-access-request). - -The following steps will walk you through on using the EDB apt repository to install a DEB package. When using the commands, replace the `username` and `password` with the credentials provided by EDB. - -1. Assume superuser privileges: - - ```text - sudo su – - ``` - -2. Configure the EDB repository: - - On Debian 9: - - ```text - sh -c 'echo "deb https://username:password@apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` - - On Debian 10: - - 1. Set up the EDB repository: - - ```text - sh -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list' - ``` - - 2. Substitute your EDB credentials for the `username` and `password` in the following command: - - ```text - sh -c 'echo "machine apt.enterprisedb.com login password " > /etc/apt/auth.conf.d/edb.conf' - ``` - -3. Add support to your system for secure APT repositories: - - ```text - apt-get install apt-transport-https - ``` - -4. Add the EDB signing key: - - ```text - wget -q -O - https://:@apt.enterprisedb.com/edb-deb.gpg.key | apt-key add - - ``` - -5. Update the repository metadata: - - ```text - apt-get update - ``` - -6. Install DEB package: - - ```text - apt-get install edb-jdbc - ``` - -!!! Note - By default, the Debian 9x and Ubuntu 18.04 platform installs Java version 10. Make sure you install Java version 8 on your system to run the EDB Java-based components. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx deleted file mode 100644 index 107edff3d50..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Using the Graphical Installer to Install the Connector" - ---- - - - -You can use the EDB Connectors Installation wizard to add the JDBC connector to your system; the wizard is available at the [EDB website](https://www.enterprisedb.com/software-downloads-postgres/). - -This section demonstrates using the Installation Wizard to install the Connectors on a Windows system. To open the Installation Wizard, download the installer, and then, right-click on the installer icon, and select `Run As Administrator` from the context menu. - -When the `Language Selection` popup opens, select an installation language and click `OK` to continue to the `Setup` window. - -![The JDBC Connector Installation wizard](../images/jdbc_installation_wizard.png) - -The JDBC Connector Installation wizard - -Click `Next` to continue. - -![The Installation dialog](../images/jdbc_installation_dialog.png) - -The Installation dialog - -Use the `Installation Directory` dialog to specify the directory in which the connector will be installed, and click `Next` to continue. - -![The Ready to Install dialog](../images/ready_to_install.png) - -The Ready to Install dialog - -Click `Next` on the `Ready to Install` dialog to start the installation; popup dialogs confirm the progress of the installation wizard. - -![The installation is complete](../images/jdbc_installation_complete.png) - -The installation is complete - -When the wizard informs you that it has completed the setup, click the `Finish` button to exit the dialog. - -You can also use StackBuilder Plus to add or update the connector on an existing Advanced Server installation; to open StackBuilder Plus, select StackBuilder Plus from the Windows `Apps` menu. - -![Starting StackBuilder Plus](../images/starting_stackbuilder_plus.png) - -Starting StackBuilder Plus - -When StackBuilder Plus opens, follow the onscreen instructions. Select the `EnterpriseDB JDBC Connector` option from the `Database Drivers` node of the tree control. - -![Selecting the Connectors installer](../images/selecting_the_connectors_installer.png) - -Selecting the Connectors installer - -Follow the directions of the onscreen wizard to add/update an installation of the EDB Connectors. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx deleted file mode 100644 index 863a0b6dc3f..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Configuring the Advanced Server JDBC Connector" - ---- - - - -edb-jdbc18.jar supports JDBC version 4.2. - -To make the JDBC driver available to Java, you must either copy the appropriate java `.jar` file for the JDBC version that you are using to your `$java_home/jre/lib/ext` directory or append the location of the `.jar` file to the `CLASSPATH` environment variable. - -Note that if you choose to append the location of the `jar` file to the `CLASSPATH` environment variable, you must include the complete pathname: - - `/usr/edb/jdbc/edb-jdbc18.jar` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/index.mdx deleted file mode 100644 index 9146ad75447..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/04_installing_and_configuring_the_jdbc_connector/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Installing and Configuring the JDBC Connector" - ---- - - - -This chapter describes how to install and configure the EDB JDBC Connector. - -Before installing the EDB JDBC Connector, you must have Java installed on your system; you can download a Java installer that matches your environment from the Oracle Java Downloads [website](http://www.oracle.com/technetwork/java/javase/downloads/index.html). Documentation that contains detailed installation instructions is available through the associated `Installation Instruction` links on the same page. - -You can use the Advanced Server graphical installer or an RPM package to add the EDB JDBC Connector to your installation. - -The following sections describe these installation methods. - -
- -installing_the_connector_with_an_rpm_package installing_the_connector_on_an_sles_12_host installing_a_deb_package_on_a_debian_or_ubuntu_host using_the_graphical_installer_to_install_the_connector configuring_the_advanced_server_jdbc_connector - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx deleted file mode 100644 index a83ca9c72a9..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Loading the Advanced Server JDBC Connector" - ---- - - - -The Advanced Server JDBC driver is written in Java and is distributed in the form of a compiled JAR (Java Archive) file. Use the `Class.forName()` method to load the driver. The `forName()` method dynamically loads a Java class at runtime. When an application calls the `forName()` method, the JVM (Java Virtual Machine) attempts to find the compiled form (the bytecode) that implements the requested class. - -The Advanced Server JDBC driver is named `com.edb.Driver`: - -`Class.forName("com.edb.Driver");` - -After loading the bytecode for the driver, the driver registers itself with another JDBC class (named `DriverManager`) that is responsible for managing all the JDBC drivers installed on the current system. - -If the JVM is unable to locate the named driver, it throws a `ClassNotFound` exception (which is intercepted with a `catch` block near the end of the program). The `DriverManager` is designed to handle multiple JDBC driver objects. You can write a Java application that connects to more than one database system via JDBC. The next section explains how to select a specific driver. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx deleted file mode 100644 index ebf1aa9d5ec..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: "Additional Connection Properties" - ---- - - - -In addition to the standard connection parameters, the Advanced Server JDBC driver supports connection properties that control behavior specific to `EDB`. You can specify these properties in the connection URL or as a `Properties` object parameter passed to `DriverManager.getConnection()`. Listing 1.2 demonstrates how to use a `Properties` object to specify additional connection properties: - -Listing 1.2 - -```text -String url = "jdbc:edb://localhost/edb"; -Properties props = new Properties(); - -props.setProperty("user", "enterprisedb"); -props.setProperty("password", "enterprisedb"); -props.setProperty("sslfactory", "com.edb.ssl.NonValidatingFactory"); -props.setProperty("ssl", "true"); - -Connection con = DriverManager.getConnection(url, props); -``` - -!!! Note - By default the combination of `SSL=true` and setting the connection URL parameter `sslfactory=org.postgresql.ssl.NonValidatingFactory` encrypts the connection but does not validate the SSL certificate. To enforce certificate validation, you must use a `Custom SSLSocketFactory`. For more details about writing a `Custom SSLSocketFactory`, review [the PostgreSQL JDBC driver documentation](https://jdbc.postgresql.org/documentation/head/ssl-factory.html). - -To specify additional connection properties in the URL, add a question mark and an ampersand-separated list of keyword-value pairs: - -`String url = "jdbc:edb://localhost/edb?user=enterprisedb&ssl=true";` - -Some of the additional connection properties are shown in the following table: - -Table 5-2 - Additional Connection Properties - -| Name | Type | Description | -| --------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| user | String | The database user on whose behalf the connection is being made. | -| password | String | The database user’s password. | -| ssl | Boolean | Requests an authenticated, encrypted SSL connection | -| loggerLevel | String | The logger level of the driver. The allowed values are OFF, DEBUG or TRACE. This enables the java.util.logging.Logger Level of the driver based on the following mapping of levels: DEBUG -> FINE, TRACE -> FINEST. The loggerLevel property is intended for debugging the driver, and not for general SQL query debugging. | -| loggerFile | String | The file name output of the logger. This parameter must be used together with loggerLevel. If set, the Logger uses a java.util.logging.FileHandler to write to a specified file. If the parameter is not set or the file can’t be created, the java.util.logging.ConsoleHandler is used instead of java.util.logging.FileHandler. | -| charSet | String | The value of charSet determines the character set used for data sent to or received from the database. | -| prepareThreshold | Integer | The value of prepareThreshold determines the number of PreparedStatement executions required before switching to server side prepared statements. The default is five. | -| loadBalanceHosts | Boolean | In default mode (disabled) hosts are connected in the given order. If enabled, hosts are chosen randomly from the set of suitable candidates. | -| targetServerType | String | Allows opening connections to only servers with the required state. The allowed values are any, primary, secondary, preferSecondary, and preferSyncSecondary. The primary/secondary distinction is currently done by observing if the server allows writes. The value preferSecondary tries to connect to secondaries if any are available, otherwise allows connecting to the primary. The Advanced Server JDBC Connector supports preferSyncSecondary, which permits connection to only synchronous secondaries or the primary if there are no active synchronous secondaries. | -| skipQuotesOnReturning | Boolean | When set to true, column names from the RETURNING clause are not quoted. This eliminates a case-sensitive comparison of the column name. When set to false (the default setting), column names are quoted. | diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx deleted file mode 100644 index ef088539419..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx +++ /dev/null @@ -1,259 +0,0 @@ ---- -title: "Preferring Synchronous Secondary Database Servers" - ---- - - - -The Advanced Server JDBC Connector supports the `preferSyncSecondary` option for the `targetServerType` connection property as noted in Table 5-2. - -The `preferSyncSecondary` option provides a preference for synchronous, standby servers for failover connection, and thus ignoring asynchronous servers. - -The specification of this capability in the connection URL is shown by the following syntax: - -```text -jdbc:edb://primary:port,secondary_1:port_1,secondary_2:port_2,.../ -database?targetServerType=preferSyncSecondary -``` - -**Parameters** - -`primary:port` - -The IP address or a name assigned to the primary database server followed by its port number. If `primary` is a name, it must be specified with its IP address in the `/etc/hosts` file on the host running the Java program. **Note:** The primary database server can be specified in any location in the list. It does not have to precede the secondary database servers. - -`secondary_n:port_n` - -The IP address or a name assigned to a standby, secondary database server followed by its port number. If `secondary_n` is a name, it must be specified with its IP address in the `/etc/hosts` file on the host running the Java program. - -`database` - -The name of the database to which the connection is to be made. - -The following is an example of the connection URL: - -```text -String url = "jdbc:edb://primary:5300,secondary1:5400/edb?targetServerType=preferSyncSecondary"; -con = DriverManager.getConnection(url, "enterprisedb", "edb"); -``` - -The following characteristics apply to the `preferSyncSecondary` option: - -- The primary database server may be specified in any location in the connection list. -- Connection for accessing the database for usage by the Java program is first attempted on a synchronous secondary. The secondary servers are available for read-only operations. -- No connection attempt is made to any servers running in asynchronous mode. -- The order in which connection attempts are made is determined by the `loadBalanceHosts` connection property as described in Table 5‑2. If disabled, which is the default setting, connection attempts are made in the left-to-right order specified in the connection list. If enabled, connection attempts are made randomly. -- If connection cannot be made to a synchronous secondary, then connection to the primary database server is used. If the primary database server is not active, then the connection attempt fails. - -The synchronous secondaries to be used for the `preferSyncSecondary` option must be configured for hot standby usage. - -The following section provides a brief overview of setting up the primary and secondary database servers for hot standby, synchronous replication. - -## Configuring Primary and Secondary Database Servers Overview - -The process for configuring a primary and secondary database servers are described in the PostgreSQL documentation. - -For general information on hot standby usage, which is needed for the `preferSyncSecondary` option, see [the PostgreSQL core documentation](https://www.postgresql.org/docs/12/static/hot-standby.html). - -For information about creating a base backup for the secondary database server from the primary, see Section 25.3.2, *Making a Base Backup* (describes usage of the pg_basebackup utility program) or Section 25.3.3, *Making a Base Backup Using the Low Level API* within Section 25.3 *Continuous Archiving and Point-in-Time Recovery (PITR)* in [The PostgreSQL Core Documentation](https://www.postgresql.org/docs/12/static/continuous-archiving.html). - -For information on the configuration parameters that must be set for hot standby usage, see [Section 19.6, Replication](https://www.postgresql.org/docs/12/static/runtime-config-replication.html). - -The following section provides a basic example of setting up the primary and secondary database servers. - -## Example: Primary and Secondary Database Servers - -In the example that follows, the: - -- primary database server resides on host `192.168.2.24`, port `5444` -- Secondary database server is named `secondary1` and resides on host `192.168.2.22`, port `5445` -- Secondary database server is named `secondary2` and resides on host `192.162.2.24`, port `5446` (same host as the primary) - -In the primary database server’s `pg_hba.conf` file, there must be a replication entry for each unique replication database `USER/ADDRESS` combination for all secondary database servers. In the following example, the database superuser `enterprisedb` is used as the replication database user for both the `secondary1` database server on `192.168.2.22` and the `secondary2` database server that is local relative to the primary. - -```text -# TYPE DATABASE USER ADDRESS METHOD -host replication enterprisedb 192.168.2.22/32 md5 -host replication enterprisedb 127.0.0.1/32 md5 -``` - -After the primary database server has been configured in the `postgresql.conf` file along with its `pg_hba.conf` file, database server `secondary1` is created by invoking the following command on host `192.168.2.22` for `secondary1`: - -```text -su – enterprisedb -Password: --bash-4.1$ pg_basebackup -D /opt/secondary1 -h 192.168.2.24 -p 5444 -Fp -R -X stream -l 'Secondary1' -``` - -On the secondary database server, `/opt/secondary1`, a `recovery.conf` file is generated in the database cluster, which has been edited in the following example by adding the `application_name=secondary1` setting as part of the `primary_conninfo` string and removal of some of the other unneeded options automatically generated by `pg_basebackup`. Also note the use of the `standby_mode = 'on'` parameter. - -```text -standby_mode = 'on' -primary_conninfo = 'user=enterprisedb password=password host=192.168.2.24 port=5444 application_name=secondary1' -``` - -The application name `secondary1` must be included in the `synchronous_standby_names` parameter of the primary database server’s `postgresql.conf` file. - -The secondary database server (`secondary2`) is created in an alternative manner on the same host used by the primary: - -```text -su - enterprisedb -Password: --bash-4.1$ psql -d edb -c "SELECT pg_start_backup('Secondary2')" -Password: - pg_start_backup ------------------ - 0/6000028 -(1 row) - --bash-4.1$ cp -rp /var/lib/edb/as12/data/opt/secondary2 --bash-4.1$ psql -d edb -c "SELECT pg_stop_backup()" -Password: -NOTICE: pg_stop_backup complete, all required WAL segments have been archived - pg_stop_backup ----------------- - 0/6000130 -(1 row) -``` - -On the secondary database server `/opt/secondary2`, create the `recovery.conf` file in the database cluster. Note the `application_name=secondary2` setting as part of the `primary_conninfo` string as shown in the following example. Also be sure to include the `standby_mode = 'on'` parameter. - -```text -standby_mode = 'on' -primary_conninfo = 'user=enterprisedb password=password host=localhost port=5444 application_name=secondary2' -``` - -The application name `secondary2` must be included in the `synchronous_standby_names` parameter of the primary database server’s `postgresql.conf` file. - -You must ensure the configuration parameter settings in the `postgresql.conf` file of the secondary database servers are properly set (particularly `hot_standby=on`). - -!!! Note - As of EDB Postgres Advanced Server v12, the `recovery.conf` file is no longer valid; it is replaced by the `standby.signal` file. As a result, `primary_conninfo` is moved from the `recovery.conf` file to the `postgresql.conf` file. The presence of `standby.signal` file signals the cluster to run in standby mode. Please note that even if you try to create a `recovery.conf` file manually and keep it under the `data` directory, the server will fail to start and throw an error. - -The parameter `standby_mode=on` is also removed from EDB Postgres Advanced Server v12, and the `trigger_file` parameter name is changed to `promote_trigger_file`. - -The following table lists the basic `postgresql.conf` configuration parameter settings of the primary database server as compared to the secondary database servers: - -Table - Primary/Secondary Configuration Parameters - -| Parameter | Primary | Secondary | Description | -| ------------------------- | ----------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| archive_mode | on | off | Completed WAL segments sent to archive storage | -| archive_command | cp %p /*archive_dir*/%f | n/a | Archive completed WAL segments | -| wal_level (9.5 or prior) | hot_standby | minimal | Information written to WAL segment | -| wal_level (9.6 or later) | replica | minimal | Information written to WAL segment | -| max_wal_senders | *n* (positive integer) | 0 | Maximum concurrent connections from standby servers | -| wal_keep_segments | *n* (positive integer) | 0 | Minimum number of past log segments to keep for standby servers | -| synchronous_standby_names | *n*(*secondary1*, *secondary2*,...) | n/a | List of standby servers for synchronous replication. Must be present to enable synchronous replication. These are obtained from the application_name option of the primary_conninfo parameter in the recovery.conf file of each standby server. | -| hot_standby | off | on | Client application can connect and run queries on the secondary server in standby mode | - -The secondary database server (`secondary1`) is started: - -```text --bash-4.1$ pg_ctl start -D /opt/secondary1 -l logfile -o "-p 5445" -server starting -``` - -The secondary database server (`secondary2`) is started: - -```text --bash-4.1$ pg_ctl start -D /opt/secondary2/data -l logfile -o "-p 5446" -server starting -``` - -To ensure that the secondary database servers are properly set up in synchronous mode, use the following query on the primary database server. Note that the `sync_state` column lists applications `secondary1` and `secondary2` as sync. - -```text -edb=# SELECT usename, application_name, client_addr, client_port, sync_state FROM pg_stat_replication; - usename | application_name | client_addr | client_port | sync_state ---------------+------------------+--------------+-------------+------------ - enterprisedb | secondary1 | 192.168.2.22 | 53525 | sync - enterprisedb | secondary2 | 127.0.0.1 | 36214 | sync -(2 rows) -``` - -The connection URL is: - -```text -String url = "jdbc:edb://primary:5444,secondary1:5445,secondary2:5446/edb?targetServerType=preferSyncSecondary"; -con = DriverManager.getConnection(url, "enterprisedb", "password"); -``` - -The `/etc/hosts` file on the host running the Java program contains the following entries with the server names specified in the connection URL string: - -```text -192.168.2.24 localhost.localdomain primary -192.168.2.22 localhost.localdomain secondary1 -192.168.2.24 localhost.localdomain secondary2 -``` - -For this example, the preferred synchronous secondary connection option results in the first usage attempt made on `secondary1`, then on `secondary2` if `secondary1` is not active, then on the primary if both `secondary1` and `secondary2` are not active as demonstrated by the following program that displays the IP address and port of the database server to which the connection is made. - -```text -import java.sql.*; -public class InetServer -{ - public static void main(String[] args) - { - try - { - Class.forName("com.edb.Driver"); - String url = - "jdbc:edb://primary:5444,secondary1:5445,secondary2:5446/edb?targetServerType=preferSyncSecondary"; - String user = "enterprisedb"; - String password = "password"; - Connection con = DriverManager.getConnection(url, user, password); - - ResultSet rs = con.createStatement().executeQuery("SELECT inet_server_addr() || ':' || inet_server_port()"); - rs.next(); - System.out.println(rs.getString(1)); - - rs.close(); - con.close(); - System.out.println("Command successfully executed"); - } - catch(ClassNotFoundException e) - { - System.out.println("Class Not Found : " + e.getMessage()); - } - catch(SQLException exp) - { - System.out.println("SQL Exception: " + exp.getMessage()); - System.out.println("SQL State: " + exp.getSQLState()); - System.out.println("Vendor Error: " + exp.getErrorCode()); - } - } -} -``` - -**Case 1:** When all database servers are active, connection is made to `secondary1` on `192.168.2.22` port `5445`. - -```text -$ java InetServer -192.168.2.22/32:5445 -Command successfully executed -``` - -**Case 2:** When `secondary1` is shut down, connection is made to `secondary2` on `192.168.2.24` port `5446`. - -```text -bash-4.1$ /usr/edb/as12/bin/pg_ctl stop -D /opt/secondary1 -waiting for server to shut down.... done -server stopped - -$ java InetServer -192.168.2.24/32:5446 -Command successfully executed -``` - -**Case 3:** When `secondary2` is also shut down, connection is made to the `primary` on `192.168.2.24` port `5444`. - -```text -bash-4.1$ /usr/edb/as12/bin/pg_ctl stop -D /opt/secondary2/data -waiting for server to shut down.... done -server stopped - -$ java InetServer -192.168.2.24/32:5444 -Command successfully executed -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx deleted file mode 100644 index 4a7b2916e58..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Connecting to the Database" - ---- - - - -After the driver has loaded and registered itself with the `DriverManager`, the `ListEmployees` class can attempt to connect to the database server, as shown in the following code fragment: - -```text -String url = "jdbc:edb://localhost:5444/edb"; -String user = "enterprisedb"; -String password = "enterprisedb"; -Connection con = DriverManager.getConnection(url, user, password); -``` - -All JDBC connections start with the `DriverManager`. The `DriverManager` class offers a static method called `getConnection()` that is responsible for creating a connection to the database. When you call the `getConnection()` method, the `DriverManager` must decide which JDBC driver to use to connect to the database; that decision is based on a URL (Uniform Resource Locator) that you pass to `getConnection()`. - -A JDBC URL takes the following general format: - - `jdbc::` - -The first component in a JDBC URL is always `jdbc`. When using the Advanced Server JDBC Connector, the second component (the driver) is `edb`. - -The Advanced Server JDBC URL takes one of the following forms: - - `jdbc:edb:` - - `jdbc:edb:///` - - `jdbc:edb://:/` - -The following table shows the various connection parameters: - -Table - Connection Parameters - -| Name | Description | -| -------- | -------------------------------------------------------------------------------------------------------- | -| host | The host name of the server. Defaults to localhost. | -| port | The port number the server is listening on. Defaults to the Advanced Server standard port number (5444). | -| database | The database name. | - -
- -additional_connection_properties preferring_synchronous_secondary_database_servers - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx deleted file mode 100644 index a29f5278230..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "Executing SQL Statements through Statement Objects" - ---- - - - -After loading the Advanced Server JDBC Connector driver and connecting to the server, the code in the sample application builds a JDBC `Statement` object, executes an SQL query, and displays the results. - -A `Statement` object sends SQL statements to a database. There are three kinds of Statement objects. Each is specialized to send a particular type of SQL statement: - -- A `Statement` object is used to execute a simple SQL statement with no parameters. -- A `PreparedStatement` object is used to execute a pre-compiled SQL statement with or without IN parameters. -- A `CallableStatement` object is used to execute a call to a database stored procedure. - -You must construct a `Statement` object before executing an SQL statement. The `Statement` object offers a way to send a SQL statement to the server (and gain access to the result set). Each `Statement` object belongs to a `Connection`; use the `createStatement()` method to ask the `Connection` to create the `Statement` object. - -A `Statement` object defines several methods to execute different types of SQL statements. In the sample application, the `executeQuery()` method executes a `SELECT` statement: - -```text -Statement stmt = con.createStatement(); -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -The `executeQuery()` method expects a single argument: the SQL statement that you want to execute. `executeQuery()` returns data from the query in a `ResultSet` object. If the server encountered an error while executing the SQL statement provided, it throws an `SQLException` (and does not return a `ResultSet`). - -## Using Named Notation with a CallableStatement Object - -The JDBC Connector (Advanced Server version 9.6 and later) supports the use of named parameters when instantiating a `CallableStatement` object. This syntax is an extension of JDBC supported syntax, and does not conform to the JDBC standard. - -You can use a `CallableStatement` object to pass parameter values to a stored procedure. You can assign values to `IN`, `OUT`, and `INOUT` parameters with a `CallableStatement` object. - -When using the `CallableStatement` class, you can use ordinal notation or named notation to specify values for actual arguments. You must set a value for each `IN` or `INOUT` parameter marker in a statement. - -When using ordinal notation to pass values to a `CallableStatement` object, you should use the setter method that corresponds to the parameter type. For example, when passing a `STRING` value, use the `setString` setter method. Each parameter marker within a statement (`?`) represents an ordinal value. When using ordinal parameters, you should pass the actual parameter values to the statement in the order that the formal arguments are specified within the procedure definition. - -You can also use named parameter notation when specifying argument values for a `CallableStatement` object. Named parameter notation allows you to supply values for only those parameters that are required by the procedure, omitting any parameters that have acceptable default values. You can also specify named parameters in any order. - -When using named notation, each parameter name should correspond to a `COLUMN_NAME` returned by a call to the `DatabaseMetaData.getProcedureColumns` method. You should use the `=>` token when including a named parameter in a statement call. - -Use the `registerOutParameter` method to identify each `OUT` or `INOUT` parameter marker in the statement. - -**Examples** - -The following examples demonstrate using the `CallableStatement` method to provide parameters to a procedure with the following signature: - -```text -PROCEDURE hire_emp (ename VARCHAR2 -empno NUMBER -job VARCHAR2 -sal NUMBER -hiredate DATE DEFAULT now(), -mgr NUMBER DEFAULT 7100, -deptno NUMBER -) -``` - -The following example uses ordinal notation to provide parameters: - -```text -CallableStatement cstmt = con.prepareCall -("{CALL hire_emp(?,?,?,?,?,?,?)}"); -//Bind a value to each parameter. -cstmt.setString(1, "SMITH"); -cstmt.setInt(2, 8888); -cstmt.setString(3, "Sales"); -cstmt.setInt(4, 5500); -cstmt.setDate(5, "2016-06-01"); -cstmt.setInt(6, 7566); -cstmt.setInt(7, 30); -``` - -The following example uses named notation to provide parameters; using named notation, you can omit parameters that have default values or re-order parameters: - -```text -CallableStatement cstmt = con.prepareCall -("{CALL hire_emp(ename => ?, -job => ?, -empno => ?, -sal => ?, -deptno => ? -)}"); - -//Bind a value to each parameter. -cstmt.setString("ename", "SMITH"); -cstmt.setInt("empno", 8888); -cstmt.setString("job", "Sales"); -cstmt.setInt("sal", 5500); -cstmt.setInt("deptno", 30); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx deleted file mode 100644 index f7450d9f33c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Retrieving Results from a ResultSet Object" - ---- - - - -A `ResultSet` object is the primary storage mechanism for the data returned by an SQL statement. Each `ResultSet` object contains both data and metadata (in the form of a `ResultSetMetaData` object). `ResultSetMetaData` includes useful information about results returned by the SQL command: column names, column count, row count, column length, and so on. - -To access the row data stored in a `ResultSet` object, an application calls one or more `getter` methods. A `getter` method retrieves the value in a particular column of the current row. There are many different `getter` methods; each method returns a value of a particular type. For example, the `getString()` method returns a `STRING` type; the `getDate()` method returns a `Date`, and the `getInt()` method returns an `INT` type. When an application calls a `getter` method, JDBC tries to convert the value into the requested type. - -Each `ResultSet` keeps an internal pointer that point to the current row. When the `executeQuery()` method returns a `ResultSet`, the pointer is positioned before the first row; if an application calls a `getter` method before moving the pointer, the `getter` method will fail. To advance to the next (or first) row, call the `ResultSet’s next()` method. `ResultSet.next()` is a boolean method; it returns `TRUE` if there is another row in the `ResultSet` or `FALSE` if you have moved past the last row. - -After moving the pointer to the first row, the sample application uses the `getString()` `getter` method to retrieve the value in the first column and then prints that value. Since `ListEmployees` calls `rs.next()` and `rs.getString()` in a loop, it processes each row in the result set. `ListEmployees` exits the loop when `rs.next()` moves the pointer past the last row and returns `FALSE`. - -```text -while(rs.next()) -{ -System.out.println(rs.getString(1)); -} -``` - -When using the `ResultSet` interface, remember: - -- You must call `next()` before reading any values. `next()` returns `true` if another row is available and prepares the row for processing. -- Under the JDBC specification, an application should access each row in the `ResultSet` only once. It is safest to stick to this rule, although at the current time, the Advanced Server JDBC driver will allow you to access a field as many times as you want. -- When you’ve finished using a `ResultSet`, call the `close()` method to free the resources held by that object. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx deleted file mode 100644 index b55d0241714..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Freeing Resources" - ---- - - - -Every JDBC object consumes some number of resources. A `ResultSet` object, for example, may contain a copy of every row returned by a query; a `Statement` object may contain the text of the last command executed, and so forth. It’s usually a good idea to free up those resources when the application no longer needs them. The sample application releases the resources consumed by the `Result`, `Statement`, and `Connection` objects by calling each object’s `close()` method: - -```text -rs.close(); -stmt.close(); -con.close(); -``` - -If you attempt to use a JDBC object after closing it, that object will throw an error. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx deleted file mode 100644 index 9f8542ddd29..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Handling Errors" - ---- - - - -When connecting to an external resource (such as a database server), errors are bound to occur; your code should include a way to handle these errors. Both JDBC and the Advanced Server JDBC Connector provide various types of error handling. The [ListEmployees class example](./#using_the_advanced_server_jdbc_connector_with_java_applications) demonstrates how to handle an error using `try/catch` blocks. - -When a JDBC object throws an error (an object of type `SQLException` or of a type derived from `SQLException`), the `SQLException` object exposes three different pieces of error information: - -- The error message. -- The SQL State. -- A vendor-specific error code. - -In the example, the following code displays the value of these components should an error occur: - -```text -System.out.println("SQL Exception: " + exp.getMessage()); -System.out.println("SQL State: " + exp.getSQLState()); -System.out.println("Vendor Error: " + exp.getErrorCode()); -``` - -For example, if the server tries to connect to a database that does not exist on the specified host, the following error message is displayed: - -```text -SQL Exception: FATAL: database "acctg" does not exist -SQL State: 3D000 -Vendor Error: 0 -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx deleted file mode 100644 index 991f46be5c2..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Using the Advanced Server JDBC Connector with Java applications" - ---- - - - -With Java and the EDB JDBC Connector in place, a Java application can access an Advanced Server database. Listing 1.1 creates an application that executes a query and prints the result set. - -Listing 1.1 - -```text -import java.sql.*; -public class ListEmployees -{ - public static void main(String[] args) - { - try - { - Class.forName("com.edb.Driver"); - String url = "jdbc:edb://localhost:5444/edb"; - String user = "enterprisedb"; - String password = "enterprisedb"; - Connection con = DriverManager.getConnection(url, user, password); - Statement stmt = con.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); - while(rs.next()) - { - System.out.println(rs.getString(1)); - } - - rs.close(); - stmt.close(); - con.close(); - System.out.println("Command successfully executed"); - } - catch(ClassNotFoundException e) - { - System.out.println("Class Not Found : " + e.getMessage()); - } - catch(SQLException exp) - { - System.out.println("SQL Exception: " + exp.getMessage()); - System.out.println("SQL State: " + exp.getSQLState()); - System.out.println("Vendor Error: " + exp.getErrorCode()); - } - } -} -``` - -This example is simple, but it demonstrates the fundamental steps required to interact with an Advanced Server database from a Java application: - -- Load the JDBC driver -- Build connection properties -- Connect to the database server -- Execute an SQL statement -- Process the result set -- Clean up -- Handle any errors that may occur - -
- -loading_the_advanced_server_jdbc_connector connecting_to_the_database executing_sql_statements_through_statement_objects retrieving_results_from_a_resultset_object freeing_resources handling_errors - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/06_executing_sql_commands_with_executeUpdate().mdx b/product_docs/docs/jdbc_connector/42.2.19.1/06_executing_sql_commands_with_executeUpdate().mdx deleted file mode 100644 index cb309bfe9ee..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/06_executing_sql_commands_with_executeUpdate().mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: "Executing SQL Commands with executeUpdate() or through PrepareStatement Objects" - ---- - - - -In the previous example `ListEmployees` executed a `SELECT` statement using the `Statement.executeQuery()` method. `executeQuery()` was designed to execute query statements so it returns a `ResultSet` that contains the data returned by the query. The `Statement` class offers a second method that you should use to execute other types of commands (`UPDATE`, `INSERT`, `DELETE`, and so forth). Instead of returning a collection of rows, the `executeUpdate()` method returns the number of rows affected by the SQL command it executes. - -The signature of the `executeUpdate()` method is: - -```text - int executeUpdate(String sqlStatement) -``` - -Provide this method a single parameter of type `String`, containing the SQL command that you wish to execute. - -## Using executeUpdate() to INSERT Data - -The example that follows demonstrates using the `executeUpdate()` method to add a row to the `emp` table. - -!!! Note - The following example is not a complete application, only a method - the samples in the remainder of this document do not include the code required to set up and tear down a `Connection`. To experiment with the example, you must provide a class that invokes the sample code. - -Listing 1.3 - -```text - public void updateEmployee(Connection con) - { - try - { - int rowcount = stmt.executeUpdate("INSERT INTO " - + "emp(empno, ename) VALUES(6000,'Jones')"); - System.out.println(""); - System.out.println("Success - "+rowcount+ - " rows affected."); - } catch(Exception err) { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } - } -``` - -The `updateEmployee()` method expects a single argument from the caller, a `Connection` object that must be connected to an Advanced Server database: - -```text - public void updateEmployee(Connection con); -``` -The `executeUpdate()` method returns the number of rows affected by the SQL statement (an `INSERT` typically affects one row, but an `UPDATE` or `DELETE` statement can affect more). - -```text - int rowcount = stmt.executeUpdate("INSERT INTO emp(empno, ename)" - +" VALUES(6000,'Jones')"); -``` - -If `executeUpdate()` returns without throwing an error, the call to `System.out.println` displays a message to the user that shows the number of rows affected. - -```text - System.out.println(""); - System.out.println("Success - "+rowcount+" rows affected."); -``` - -The catch block displays an appropriate error message to the user if the program encounters an exception: - -```text - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -``` - -You can use `executeUpdate()` with any SQL command that does not return a result set. However, you probably want to use `PrepareStatements` when the queries can be parameterized. - -## Using PreparedStatements to Send SQL Commands - -Many applications execute the same SQL statement over and over again, changing one or more of the data values in the statement between each iteration. If you use a `Statement` object to repeatedly execute a SQL statement, the server must parse, plan, and optimize the statement every time. JDBC offers another `Statement` derivative, the `PreparedStatement` to reduce the amount of work required in such a scenario. - -Listing 1.4 demonstrates invoking a `PreparedStatement` that accepts an employee ID and employee name and inserts that employee information in the `emp` table: - -```text - public void AddEmployee(Connection con) - { - try { - Console c = System.console(); - String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.setObject(1,new Integer(c.readLine("ID:"))); - stmt.setObject(2,c.readLine("Name:")); - stmt.execute(); - System.out.println("The procedure successfully executed."); - } catch(Exception err) { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } - } -``` -Instead of hard-coding data values in the SQL statement, you insert `placeholders` to represent the values that will change with each iteration. Listing 1.4 shows an `INSERT` statement that includes two placeholders (each represented by a question mark): - -```text - String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; -``` -With the parameterized SQL statement in hand, the `AddEmployee()` method can ask the `Connection` object to prepare that statement and return a `PreparedStatement` object: - -```text - PreparedStatement stmt = con.prepareStatement(command); -``` - -At this point, the `PreparedStatement` has parsed and planned the `INSERT` statement, but it does not know what values to add to the table. Before executing the `PreparedStatement`, you must supply a value for each placeholder by calling a `setter` method. `setObject()` expects two arguments: - - - A parameter number; parameter number one corresponds to the first question mark, parameter number two corresponds to the second question mark, etc. - - - The value to substitute for the placeholder. - -The `AddEmployee()` method prompts the user for an employee ID and name and calls `setObject()` with the values supplied by the user: - -```text - stmt.setObject(1,new Integer(c.readLine("ID:"))); - stmt.setObject(2, c.readLine("Name:")); -``` - -And then asks the PreparedStatement object to execute the statement: - -```text - stmt.execute(); -``` - -If the SQL statement executes as expected, `AddEmployee()` displays a message that confirms the execution. If the server encounters an exception, the error handling code displays an error message. - -Some simple syntax examples using `PreparedStatement` sending SQL commands follow: - -To use the UPDATE command to update a row: - -```text - String command = " UPDATE emp SET ename=? WHERE empno=?"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.setObject(1, c.readLine("Name:")); - stmt.setObject(2,new Integer(c.readLine("ID:"))); - stmt.execute(); -``` - -To use the DROP TABLE command to delete a table from a database: - -```text - String command = "DROP TABLE tableName"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.execute(); -``` - -To use the CREATE TABLE command to add a new table to a database: - -```text - String command = ("CREATE TABLE tablename (fieldname NUMBER(4,2), fieldname2 VARCHAR2(30))"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.execute(); -``` - -To use the ALTER TABLE command to change the attributes of a table: - -```text - String command ="ALTER TABLE tablename ADD COLUMN colname BOOLEAN "; - PreparedStatement stmt = con.prepareStatement(command); - stmt.execute(); -``` \ No newline at end of file diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/07_adding_a_graphical_interface_to_a_java_program.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/07_adding_a_graphical_interface_to_a_java_program.mdx deleted file mode 100644 index a3a8bbad5f7..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/07_adding_a_graphical_interface_to_a_java_program.mdx +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "Adding a Graphical Interface to a Java Program" - ---- - - - -With a little extra work, you can add a graphical user interface to a program - the next example (Listing 1.4) demonstrates how to write a Java application that creates a `JTable` (a spreadsheet-like graphical object) and copies the data returned by a query into that `JTable`. - -!!! Note - The following sample application is a method, not a complete application. To call this method, provide an appropriate main() function and wrapper class. - -Listing 1.5 - -```text -import java.sql.*; -import java.util.Vector; -import javax.swing.JFrame; -import javax.swing.JScrollPane; -import javax.swing.JTable; - -... -public void showEmployees(Connection con) -{ - try - { - Statement stmt = con.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); - ResultSetMetaData rsmd = rs.getMetaData(); - Vector labels = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - labels.addElement(rsmd.getColumnLabel(column + 1)); - - Vector rows = new Vector(); - while(rs.next()) - { - Vector rowValues = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - rowValues.addElement(rs.getString(column + 1)); - rows.addElement(rowValues); - } - - JTable table = new JTable(rows, labels); - JFrame jf = new JFrame("Browsing table: EMP (from EnterpriseDB)"); - jf.getContentPane().add(new JScrollPane(table)); - jf.setSize(400, 400); - jf.setVisible(true); - jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - System.out.println("Command successfully executed"); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Before writing the `showEmployees()` method, you must import the definitions for a few JDK-provided classes: - -```text -import java.sql.*; -import java.util.Vector; -import javax.swing.JFrame; -import javax.swing.JScrollPane; -import javax.swing.JTable; -``` - -The `showEmployees()` method expects a Connection object to be provided by the caller; the `Connection` object must be connected to the Advanced Server: - -```text -public void showEmployees(Connection con) -``` - -`showEmployees()` creates a `Statement` and uses the `executeQuery()` method to execute an SQL query that generates an employee list: - -```text -Statement stmt = con.createStatement(); -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -As you would expect, `executeQuery()` returns a `ResultSet` object. The `ResultSet` object contains the metadata that describes the `shape` of the result set (that is, the number of rows and columns in the result set, the data type for each column, the name of each column, and so forth). You can extract the metadata from the `ResultSet` by calling the `getMetaData()` method: - -```text -ResultSetMetaData rsmd = rs.getMetaData(); -``` - -Next, `showEmployees()` creates a `Vector` (a one dimensional array) to hold the column headers and then copies each header from the `ResultMetaData` object into the vector: - -```text -Vector labels = new Vector(); -for(int column = 0; column < rsmd.getColumnCount(); column++) -{ - labels.addElement(rsmd.getColumnLabel(column + 1)); -} -``` - -With the column headers in place, `showEmployees()` extracts each row from the `ResultSet` and copies it into a new vector (named `rows`). The `rows` vector is actually a vector of vectors: each entry in the `rows` vector contains a vector that contains the data values in that row. This combination forms the two-dimensional array that you will need to build a `JTable`. After creating the rows vector, the program reads through each row in the `ResultSet` (by calling `rs.next()`). For each column in each row, a `getter` method extracts the value at that row/column and adds the value to the `rowValues` vector. Finally, `showEmployee()` adds each `rowValues` vector to the `rows` vector: - -```text -Vector rows = new Vector(); -while(rs.next()) -{ - Vector rowValues = new Vector(); - for(int column = 0; column < rsmd.getColumnCount(); column++) - rowValues.addElement(rs.getString(column + 1)); - rows.addElement(rowValues); -} -``` - -At this point, the vector (`labels`) contains the column headers, and a second two-dimensional vector (`rows`) contains the data for the table. Now you can create a `JTable` from the vectors and a `JFrame` to hold the `JTable`: - -```text -JTable table = new JTable(rows, labels); -JFrame jf = new JFrame("Browsing table: EMP (from EnterpriseDB)"); -jf.getContentPane().add(new JScrollPane(table)); -jf.setSize(400, 400); -jf.setVisible(true); -jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); -System.out.println("Command successfully executed"); -``` - -The `showEmployees()` method includes a `catch` block to intercept any errors that may occur and display an appropriate message to the user: - -```text -catch(Exception err) -{ - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); -} -``` - -The result of calling the `showEmployees()` method is shown in below figure: - -![The showEmployees Window](images/the_showemployees_window.png) diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx deleted file mode 100644 index 9646cb5fc5b..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Reducing Client-side Resource Requirements" - ---- - - - -The Advanced Server JDBC driver retrieves the results of a SQL query as a `ResultSet` object. If a query returns a large number of rows, using a batched `ResultSet` will: - -- Reduce the amount of time it takes to retrieve the first row. -- Save time by retrieving only the rows that you need. -- Reduce the memory requirement of the client. - -When you reduce the fetch size of a `ResultSet` object, the driver doesn’t copy the entire `ResultSet` across the network (from the server to the client). Instead, the driver requests a small number of rows at a time; as the client application moves through the result set, the driver fetches the next batch of rows from the server. - -Batched result sets cannot be used in all situations. Not adhering to the following restrictions will make the driver silently fall back to fetching the whole `ResultSet` at once: - -- The client application must disable `autocommit`. -- The `Statement` object must be created with a `ResultSet` type of `TYPE_FORWARD_ONLY` type (which is the default). `TYPE_FORWARD_ONLY` result sets can only step forward through the ResultSet. -- The query must consist of a single SQL statement. - -## Modifying the Batch Size of a Statement Object - -Limiting the batch size of a `ResultSet` object can speed the retrieval of data and reduce the resources needed by a client-side application. Listing 1.6 creates a `Statement` object with a batch size limited to five rows: - -```text -// Make sure autocommit is off -conn.setAutoCommit(false); - -Statement stmt = conn.createStatement(); -// Set the Batch Size. -stmt.setFetchSize(5); - -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -while (rs.next()) - System.out.println("a row was returned."); - -rs.close(); -stmt.close(); -``` - -The call to `conn.setAutoCommit(false)` ensures that the server won’t close the `ResultSet` before you have a chance to retrieve the first row. After preparing the `Connection`, you can construct a `Statement` object: - -```text -Statement stmt = db.createStatement(); -``` - -The following code sets the batch size to five (rows) before executing the query: - -```text -stmt.setFetchSize(5); - -ResultSet rs = stmt.executeQuery("SELECT * FROM emp"); -``` - -For each row in the `ResultSet` object, the call to `println()` prints `a row was returned`. - -```text -System.out.println("a row was returned."); -``` - -Remember, while the `ResultSet` contains all of the rows in the table, they are only fetched from the server five rows at a time. From the client’s point of view, the only difference between a `batched` result set and an `unbatched` result set is that a batched result may return the first row in less time. - -Next, we will look at another feature (`the PreparedStatement`) that you can use to increase the performance of certain JDBC applications. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx deleted file mode 100644 index 2a1ac916645..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Using PreparedStatements to Send SQL Commands" - ---- - - - -Many applications execute the same SQL statement over and over again, changing one or more of the data values in the statement between each iteration. If you use a `Statement` object to repeatedly execute a SQL statement, the server must parse, plan, and optimize the statement every time. JDBC offers another `Statement` derivative, the `PreparedStatement` to reduce the amount of work required in such a scenario. - -Listing 1.6 demonstrates invoking a `PreparedStatement` that accepts an employee ID and employee name and inserts that employee information in the `emp` table: - -Listing 1.6 - -```text -public void AddEmployee(Connection con) -{ - try - { - Console c = System.console(); - String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; - PreparedStatement stmt = con.prepareStatement(command); - stmt.setObject(1,new Integer(c.readLine("ID:"))); - stmt.setObject(2,c.readLine("Name:")); - stmt.execute(); - - System.out.println("The procedure successfully executed."); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Instead of hard-coding data values in the SQL statement, you insert `placeholders` to represent the values that will change with each iteration. Listing 1.6 shows an `INSERT` statement that includes two placeholders (each represented by a question mark): - -```text -String command = "INSERT INTO emp(empno,ename) VALUES(?,?)"; -``` - -With the parameterized SQL statement in hand, the `AddEmployee()` method can ask the `Connection` object to prepare that statement and return a `PreparedStatement` object: - -```text -PreparedStatement stmt = con.prepareStatement(command); -``` - -At this point, the `PreparedStatement` has parsed and planned the `INSERT` statement, but it does not know what values to add to the table. Before executing the `PreparedStatement`, you must supply a value for each placeholder by calling a `setter` method. `setObject()` expects two arguments: - -- A parameter number; parameter number one corresponds to the first question mark, parameter number two corresponds to the second question mark, etc. -- The value to substitute for the placeholder. - -The `AddEmployee()` method prompts the user for an employee ID and name and calls `setObject()` with the values supplied by the user: - -```text -stmt.setObject(1,new Integer(c.readLine("ID:"))); -stmt.setObject(2, c.readLine("Name:")); -``` - -And then asks the `PreparedStatement` object to execute the statement: - -```text -stmt.execute(); -``` - -If the SQL statement executes as expected, `AddEmployee()` displays a message that confirms the execution. If the server encounters an exception, the error handling code displays an error message. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx deleted file mode 100644 index 9beaf9b4844..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx +++ /dev/null @@ -1,326 +0,0 @@ ---- -title: "Executing Stored Procedures" - ---- - - - -A stored procedure is a module that is written in EDB’s SPL and stored in the database. A stored procedure may define input parameters to supply data to the procedure and output parameters to return data from the procedure. Stored procedures execute within the server and consist of database access commands (SQL), control statements, and data structures that manipulate the data obtained from the database. - -Stored procedures are especially useful when extensive data manipulation is required before storing data from the client. It is also efficient to use a stored procedure to manipulate data in a batch program. - -## Invoking Stored Procedures - -The `CallableStatement` class provides a way for a Java program to call stored procedures. A `CallableStatement` object can have a variable number of parameters used for input (`IN` parameters), output (`OUT` parameters), or both (`IN OUT` parameters). - -The syntax for invoking a stored procedure in JDBC is shown below. Note that the square brackets indicate optional parameters; they are not part of the command syntax. - -```text -{call procedure_name([?, ?, ...])} -``` - -The syntax to invoke a procedure that returns a result parameter is: - -```text -{? = call procedure_name([?, ?, ...])} -``` - -Each question mark serves as a placeholder for a parameter. The stored procedure determines if the placeholders represent `IN`, `OUT`, or `IN OUT` parameters and the Java code must match. We will show you how to supply values for `IN` (or `IN OUT`) parameters and how to retrieve values returned in `OUT` (or `IN OUT`) parameters in a moment. - -### Executing a Simple Stored Procedure - -Listing 1.7-a shows a stored procedure that increases the salary of each employee by `10%`. `increaseSalary` expects no arguments from the caller and does not return any information: - -```sql -CREATE OR REPLACE PROCEDURE increaseSalary -IS - BEGIN - UPDATE emp SET sal = sal * 1.10; - END; -``` - -Listing 1.7-b demonstrates how to invoke the `increaseSalary` procedure: - -```java -public void SimpleCallSample(Connection con) -{ - try - { - CallableStatement stmt = con.prepareCall("{call increaseSalary()}"); - stmt.execute(); - System.out.println("Stored Procedure executed successfully"); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -To invoke a stored procedure from a Java application, use a `CallableStatement` object. The `CallableStatement` class is derived from the `Statement` class and, like the `Statement` class, you obtain a `CallableStatement` object by asking a `Connection` object to create one for you. To create a `CallableStatement` from a `Connection`, use the `prepareCall()` method: - -```java -CallableStatement stmt = con.prepareCall("{call increaseSalary()}"); -``` - -As the name implies, the `prepareCall()` method prepares the statement, but does not execute it. As you will see in the next example, an application typically binds parameter values between the call to `prepareCall()` and the call to `execute()`. To invoke the stored procedure on the server, call the `execute()` method. - -```java -stmt.execute(); -``` - -This stored procedure (`increaseSalary`) did not expect any `IN` parameters and did not return any information to the caller (using `OUT` parameters) so invoking the procedure is simply a matter of creating a `CallableStatement` object and then calling that object’s `execute()` method. - -The next section demonstrates how to invoke a stored procedure that requires data (`IN` parameters) from the caller. - -### Executing Stored Procedures with IN parameters - -The code in the next example first creates and then invokes a stored procedure named `empInsert`; `empInsert` requires `IN` parameters that contain employee information: `empno`, `ename`, `job`, `sal`, `comm`, `deptno`, and `mgr`. `empInsert` then inserts that information into the `emp` table. - -Listing 1.8-a creates the stored procedure in the Advanced Server database: - -```sql -CREATE OR REPLACE PROCEDURE empInsert( - pEname IN VARCHAR, - pJob IN VARCHAR, - pSal IN FLOAT4, - pComm IN FLOAT4, -pDeptno IN INTEGER, -pMgr IN INTEGER -) -AS -DECLARE - CURSOR getMax IS SELECT MAX(empno) FROM emp; - max_empno INTEGER := 10; -BEGIN - OPEN getMax; - FETCH getMax INTO max_empno; - INSERT INTO emp(empno, ename, job, sal, comm, deptno, mgr) - VALUES(max_empno+1, pEname, pJob, pSal, pComm, pDeptno, pMgr); - CLOSE getMax; -END; -``` - -Listing 1.8-b demonstrates how to invoke the stored procedure from Java: - -```java -public void CallExample2(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call empInsert(?,?,?,?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setObject(1, new String(c.readLine("Employee Name :"))); - stmt.setObject(2, new String(c.readLine("Job :"))); - stmt.setObject(3, new Float(c.readLine("Salary :"))); - stmt.setObject(4, new Float(c.readLine("Commission :"))); - stmt.setObject(5, new Integer(c.readLine("Department No :"))); - stmt.setObject(6, new Integer(c.readLine("Manager"))); - stmt.execute(); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call EMP_INSERT(?,?,?,?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setObject()` method binds a value to an `IN` or `IN` `OUT` placeholder. Each call to `setObject()` specifies a parameter number and a value to bind to that parameter: - -```java -stmt.setObject(1, new String(c.readLine("Employee Name :"))); -stmt.setObject(2, new String(c.readLine("Job :"))); -stmt.setObject(3, new Float(c.readLine("Salary :"))); -stmt.setObject(4, new Float(c.readLine("Commission :"))); -stmt.setObject(5, new Integer(c.readLine("Department No :"))); -stmt.setObject(6, new Integer(c.readLine("Manager"))); -``` - -After supplying a value for each placeholder, this method executes the statement by calling the `execute()` method. - -### Executing Stored Procedures with OUT parameters - -The next example creates and invokes an SPL stored procedure called `deptSelect`. This procedure requires one `IN` parameter (department number) and returns two `OUT` parameters (the department name and location) corresponding to the department number. The code in Listing 1.9-a creates the `deptSelect` procedure: - -```sql -CREATE OR REPLACE PROCEDURE deptSelect -( - p_deptno IN INTEGER, - p_dname OUT VARCHAR, - p_loc OUT VARCHAR -) -AS -DECLARE - CURSOR deptCursor IS SELECT dname, loc FROM dept WHERE deptno=p_deptno; -BEGIN - OPEN deptCursor; - FETCH deptCursor INTO p_dname, p_loc; - - CLOSE deptCursor; -END; -``` - -Listing 1.9-b shows the Java code required to invoke the `deptSelect` stored procedure: - -```java -public void GetDeptInfo(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call deptSelect(?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setObject(1, new Integer(c.readLine("Dept No :"))); - stmt.registerOutParameter(2, Types.VARCHAR); - stmt.registerOutParameter(3, Types.VARCHAR); - stmt.execute(); - System.out.println("Dept Name: " + stmt.getString(2)); - System.out.println("Location : " + stmt.getString(3)); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call deptSelect(?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setObject()` method binds a value to an `IN` or `IN OUT` placeholder. When calling `setObject()` you must identify a placeholder (by its ordinal number) and provide a value to substitute in place of that placeholder: - -```java -stmt.setObject(1, new Integer(c.readLine("Dept No :"))); -``` - -The JDBC type of each `OUT` parameter must be registered before the `CallableStatement` objects can be executed. Registering the JDBC type is done with the `registerOutParameter()` method. - -```java -stmt.registerOutParameter(2, Types.VARCHAR); -stmt.registerOutParameter(3, Types.VARCHAR); -``` - -After executing the statement, the `CallableStatement’s`getter method retrieves the `OUT` parameter values: to retrieve a `VARCHAR` value, use the `getString()` getter method. - -```java -stmt.execute(); -System.out.println("Dept Name: " + stmt.getString(2)); -System.out.println("Location : " + stmt.getString(3)); -``` - -In the current example `GetDeptInfo()` registers two `OUT` parameters and (after executing the stored procedure) retrieves the values returned in the `OUT` parameters. Since both `OUT` parameters are defined as `VARCHAR` values, `GetDeptInfo()` uses the `getString()` method to retrieve the `OUT` parameters. - -## Executing Stored Procedures with IN OUT parameters - -The code in the next example creates and invokes a stored procedure named `empQuery` defined with one `IN` parameter (`p_deptno`), two`IN OUT`parameters (`p_empno` and `p_ename`) and three `OUT` parameters (`p_job`,`p_hiredate` and `p_sal`). `empQuery` then returns information about the employee in the two `IN OUT` parameters and three `OUT` parameters. - -Listing 1.10-a creates a stored procedure named `empQuery` : - -```sql -CREATE OR REPLACE PROCEDURE empQuery -( - p_deptno IN NUMBER, - p_empno IN OUT NUMBER, - p_ename IN OUT VARCHAR2, - p_job OUT VARCHAR2, - p_hiredate OUT DATE, - p_sal OUT NUMBER -) -IS -BEGIN - SELECT empno, ename, job, hiredate, sal - INTO p_empno, p_ename, p_job, p_hiredate, p_sal - FROM emp - WHERE deptno = p_deptno - AND (empno = p_empno - OR ename = UPPER(p_ename)); -END; -``` - -Listing 1.10-b demonstrates invoking the `empQuery` procedure, providing values for the `IN` parameters, and handling the `OUT` and`IN OUT`parameters: - -```java -public void CallSample4(Connection con) -{ - try - { - Console c = System.console(); - String commandText = "{call empQuery(?,?,?,?,?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.setInt(1, new Integer(c.readLine("Department No:"))); - stmt.setInt(2, new Integer(c.readLine("Employee No:"))); - stmt.setString(3, new String(c.readLine("Employee Name:"))); - stmt.registerOutParameter(2, Types.INTEGER); - stmt.registerOutParameter(3, Types.VARCHAR); - stmt.registerOutParameter(4, Types.VARCHAR); - stmt.registerOutParameter(5, Types.TIMESTAMP); - stmt.registerOutParameter(6, Types.NUMERIC); - stmt.execute(); - System.out.println("Employee No: " + stmt.getInt(2)); - System.out.println("Employee Name: " + stmt.getString(3)); - System.out.println("Job : " + stmt.getString(4)); - System.out.println("Hiredate : " + stmt.getTimestamp(5)); - System.out.println("Salary : " + stmt.getBigDecimal(6)); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -Each placeholder (?) in the command (`commandText`) represents a point in the command that is later replaced with data: - -```java -String commandText = "{call empQuery(?,?,?,?,?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The `setInt()` method is a type-specific `setter` method that binds an `Integer` value to an `IN` or `IN OUT` placeholder. The call to `setInt()` specifies a parameter number and provides a value to substitute in place of that placeholder: - -```java -stmt.setInt(1, new Integer(c.readLine("Department No:"))); -stmt.setInt(2, new Integer(c.readLine("Employee No:"))); -``` - -The `setString()` method binds a `String` value to an `IN` or `IN OUT` placeholder: - -```java -stmt.setString(3, new String(c.readLine("Employee Name:"))); -``` - -Before executing the `CallableStatement` , you must register the JDBC type of each `OUT` parameter by calling the `registerOutParameter()` method. - -```java -stmt.registerOutParameter(2, Types.INTEGER); -stmt.registerOutParameter(3, Types.VARCHAR); -stmt.registerOutParameter(4, Types.VARCHAR); -stmt.registerOutParameter(5, Types.TIMESTAMP); -stmt.registerOutParameter(6, Types.NUMERIC); -``` - -Remember, before calling a procedure with an `IN` parameter, you must assign a value to that parameter with a setter method. Before calling a procedure with an `OUT` parameter, you register the type of that parameter; then you can retrieve the value returned by calling a getter method. When calling a procedure that defines an `IN OUT` parameter, you must perform all three actions: - -- Assign a value to the parameter. -- Register the type of the parameter. -- Retrieve the value returned with a getter method. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx deleted file mode 100644 index 78b00d93bcf..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: "Using REF CURSORS with Java" - ---- - - - -A `REF CURSOR` is a cursor variable that contains a pointer to a query result set returned by an `OPEN` statement. Unlike a static cursor, a `REF CURSOR` is not tied to a particular query. You may open the same `REF CURSOR` variable any number of times with the `OPEN` statement containing different queries; each time, a new result set is created for that query and made available via the cursor variable. A `REF CURSOR` can also pass a result set from one procedure to another. - -Advanced Server supports the declaration of both `strongly-typed` and `weakly-typed` `REF CURSORs`. A strongly-typed cursor must declare the `shape` (the type of each column) of the expected result set. You can only use a strongly-typed cursor with a query that returns the declared columns; opening the cursor with a query that returns a result set with a different shape will cause the server to throw an exception. On the other hand, a weakly-typed cursor can work with a result set of any shape. - -To declare a strongly-typed `REF CURSOR`: - -```Text -TYPE IS REF CURSOR RETURN ; -``` - -To declare a weakly-typed `REF_CURSOR`: - -```Text -name SYS_REFCURSOR; -``` - -## Using a REF CURSOR to retrieve a ResultSet - -The stored procedure shown in Listing 1.11-a (`getEmpNames`) builds two `REF CURSORs` on the server; the first `REF CURSOR` contains a list of commissioned employees in the `emp` table, while the second `REF CURSOR` contains a list of salaried employees in the `emp` table: - -Listing 1.11-a - -```text -CREATE OR REPLACE PROCEDURE getEmpNames -( - commissioned IN OUT SYS_REFCURSOR, - salaried IN OUT SYS_REFCURSOR -) -IS -BEGIN - OPEN commissioned FOR SELECT ename FROM emp WHERE comm is NOT NULL; - OPEN salaried FOR SELECT ename FROM emp WHERE comm is NULL; -END; -``` - -The `RefCursorSample()` method (see Listing 1.11-b) invokes the `getEmpName()` stored procedure and displays the names returned in each of the two `REF CURSOR` variables: - -Listing 1.11-b - -```text -public void RefCursorSample(Connection con) -{ - try - { - con.setAutoCommit(false); - String commandText = "{call getEmpNames(?,?)}"; - CallableStatement stmt = con.prepareCall(commandText); - stmt.registerOutParameter(1, Types.REF); - stmt.registerOutParameter(2, Types.REF); - - stmt.execute(); - ResultSet commissioned = (ResultSet)stmt.getObject(1); - System.out.println("Commissioned employees:"); - while(commissioned.next()) - { - System.out.println(commissioned.getString(1)); - } - - ResultSet salaried = (ResultSet)stmt.getObject(2); - System.out.println("Salaried employees:"); - while(salaried.next()) - { - System.out.println(salaried.getString(1)); - } - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -A `CallableStatement` prepares each `REF CURSOR` (`commissioned` and `salaried`). Each cursor is returned as an `IN OUT` parameter of the stored procedure, `getEmpNames()`: - -```text -String commandText = "{call getEmpNames(?,?)}"; -CallableStatement stmt = con.prepareCall(commandText); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.REF`) of the first REF CURSOR (`commissioned`) : - -```text -stmt.registerOutParameter(1, Types.REF); -``` - -Another call to `registerOutParameter()` registers the second parameter type (`Types.REF`) of the second REF CURSOR (`salaried`) : - -```text -stmt.registerOutParameter(2, Types.REF); -``` - -A call to `stmt.execute()` executes the statement: - -```text -stmt.execute(); -``` - -The `getObject()` method retrieves the values from the first parameter and casts the result to a `ResultSet`. Then, `RefCursorSample` iterates through the cursor and prints the name of each commissioned employee: - -```text -ResultSet commissioned = (ResultSet)stmt.getObject(1); -while(commissioned.next()) -{ - System.out.println(commissioned.getString(1)); -} -``` - -The same getter method retrieves the `ResultSet` from the second parameter and `RefCursorExample` iterates through that cursor, printing the name of each salaried employee: - -```text -ResultSet salaried = (ResultSet)stmt.getObject(2); -while(salaried.next()) -{ - System.out.println(salaried.getString(1)); -} -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx deleted file mode 100644 index 809d972008f..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: "Using BYTEA Data with Java" - ---- - - - -The `BYTEA` data type stores a binary string in a sequence of bytes; digital ../images and sound files are often stored as binary data. Advanced Server can store and retrieve binary data via the `BYTEA` data type. - -The following Java sample stores `BYTEA` data in an Advanced Server database and then demonstrates how to retrieve that data. The example requires a bit of setup; Listings 1.12-a, 1.12-b, and 1.12-c create the server-side environment for the Java example. - -Listing 1.12-a creates a table (`emp_detail`) that stores `BYTEA` data. `emp_detail` contains two columns: the first column stores an employee’s ID number (type `INT`) and serves as the primary key for the table; the second column stores a photograph of the employee in `BYTEA` format: - -```text -CREATE TABLE emp_detail -( - empno INT4 PRIMARY KEY, - pic BYTEA -); -``` - -Listing 1.12-b creates a procedure (`ADD_PIC`) that inserts a row into the `emp_detail` table: - -```text -CREATE OR REPLACE PROCEDURE ADD_PIC(p_empno IN int4, p_photo IN bytea) AS -BEGIN - INSERT INTO emp_detail VALUES(p_empno, p_photo); -END; -``` - -And finally, Listing 1.12-c creates a function (`GET_PIC`) that returns the photograph for a given employee: - -```text -CREATE OR REPLACE FUNCTION GET_PIC(p_empno IN int4) RETURN BYTEA IS -DECLARE - photo BYTEA; -BEGIN - SELECT pic INTO photo from EMP_DETAIL WHERE empno = p_empno; - RETURN photo; -END; -``` - -## Inserting BYTEA Data into an Advanced Server Database - -Listing 1.13 shows a Java method that invokes the `ADD_PIC` procedure (see Listing 1.12-b) to copy a photograph from the client file system to the `emp_detail` table on the server: - -```text -public void InsertPic(Connection con) -{ - try - { - Console c = System.console(); - int empno = Integer.parseInt(c.readLine("Employee No :")); - String fileName = c.readLine("Image filename :"); - File f = new File(fileName); - - if(!f.exists()) - { - System.out.println("Image file not found. Terminating..."); - return; - } - - CallableStatement stmt = con.prepareCall("{call ADD_PIC(?, ?)}"); - stmt.setInt(1, empno); - stmt.setBinaryStream(2, new FileInputStream(f), (int)f.length()); - stmt.execute(); - System.out.println("Added image for Employee "+empno); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -`InsertPic()` prompts the user for an employee number and the name of an image file: - -```text -int empno = Integer.parseInt(c.readLine("Employee No :")); -String fileName = c.readLine("Image filename :"); -``` - -If the requested file does not exist, `InsertPic()` displays an error message and terminates: - -```text -File f = new File(fileName); - -if(!f.exists()) -{ - System.out.println("Image file not found. Terminating..."); - return; -} -``` - -Next, `InsertPic()` prepares a `CallableStatement` object (`stmt`) that calls the `ADD_PIC` procedure. The first placeholder (?) represents the first parameter expected by `ADD_PIC (p_empno)`; the second placeholder represents the second parameter (`p_photo`). To provide actual values for those placeholders, `InsertPic()` calls two setter methods. Since the first parameter is of type `INTEGER`, `InsertPic()` calls the `setInt()` method to provide a value for `p_empno`. The second parameter is of type `BYTEA`, so `InsertPic()` uses a binary setter method; in this case, the method is `setBinaryStream()`: - -```text -CallableStatement stmt = con.prepareCall("{call ADD_PIC(?, ?)}"); -stmt.setInt(1, empno); -stmt.setBinaryStream(2 ,new FileInputStream(f), f.length()); -``` - -Now that the placeholders are bound to actual values, `InsertPic()` executes the `CallableStatement`: - -```text -stmt.execute(); -``` - -If all goes well, `InsertPic()` displays a message verifying that the image has been added to the table. If an error occurs, the `catch` block displays a message to the user: - -```text -System.out.println("Added image for Employee \""+empno); -catch(Exception err) -{ - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); -} -``` - -## Retrieving BYTEA Data from an Advanced Server Database - -Now that you know how to insert `BYTEA` data from a Java application, Listing 1.14 demonstrates how to retrieve `BYTEA` data from the server: - -```text -public static void GetPic(Connection con) -{ - try - { - Console c = System.console(); - int empno = Integer.parseInt(c.readLine("Employee No :")); - CallableStatement stmt = con.prepareCall("{?=call GET_PIC(?)}"); - stmt.setInt(2, empno); - stmt.registerOutParameter(1, Types.BINARY); - stmt.execute(); - byte[] b = stmt.getBytes(1); - - String fileName = c.readLine("Destination filename :"); - FileOutputStream fos = new FileOutputStream(new File(fileName)); - fos.write(b); - fos.close(); - System.out.println("File saved at \""+fileName+"\""); - } - catch(Exception err) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - err.printStackTrace(); - } -} -``` - -`GetPic()` starts by prompting the user for an employee ID number: - -```text -int empno = Integer.parseInt(c.readLine("Employee No :")); -``` - -Next, `GetPic()` prepares a `CallableStatement` with one `IN` parameter and one `OUT` parameter. The first parameter is the `OUT` parameter that will contain the photograph retrieved from the database. Since the photograph is `BYTEA` data, `GetPic()` registers the parameter as a `Type.BINARY`. The second parameter is the `IN` parameter that holds the employee number (an `INT`), so `GetPic()` uses the `setInt()` method to provide a value for the second parameter. - -```text -CallableStatement stmt = con.prepareCall("{?=call GET_PIC(?)}"); -stmt.setInt(2, empno); -stmt.registerOutParameter(1, Types.BINARY); -``` - -Next, `GetPic()` uses the `getBytes` getter method to retrieve the `BYTEA` data from the `CallableStatement`: - -```text -stmt.execute(); -byte[] b = stmt.getBytes(1); -``` - -The program prompts the user for the name of the file where it will store the photograph: - -```text -String fileName = c.readLine("Destination filename :"); -``` - -The `FileOutputStream` object writes the binary data that contains the photograph to the destination filename: - -```text -FileOutputStream fos = new FileOutputStream(new File(fileName)); -fos.write(b); -fos.close(); -``` - -Finally, `GetPic()` displays a message confirming that the file has been saved at the new location: - -```text -System.out.println("File saved at \""+fileName+"\""); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx deleted file mode 100644 index 7dfba035f2c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx +++ /dev/null @@ -1,282 +0,0 @@ ---- -title: "Using Object Types and Collections with Java" - ---- - - - -The SQL `CREATE TYPE` command is used to create a user-defined `object type`, which is stored in the Advanced Server database. The `CREATE TYPE` command is also used to create a `collection`, commonly referred to as an `array`, which is also stored in the Advanced Server database. - -These user-defined types can then be referenced within SPL procedures, SPL functions, and Java programs. - -The basic object type is created with the `CREATE TYPE AS OBJECT` command along with optional usage of the `CREATE TYPE BODY` command. - -A `nested table type` collection is created using the `CREATE TYPE AS TABLE OF` command. A `varray type` collection is created with the `CREATE TYPE VARRAY` command. - -Example usage of an object type and a collection are shown in the following sections. - -Listing 1.15 shows a Java method used by both examples to establish the connection to the Advanced Server database. - -```text -public static Connection getEDBConnection() throws - ClassNotFoundException, SQLException { - String url = "jdbc:edb://localhost:5444/test"; - String user = "enterprisedb"; - String password = "edb"; - Class.forName("com.edb.Driver"); - Connection conn = DriverManager.getConnection(url, user, password); - return conn; -} -``` - -## Using an Object Type - -Create the object types in the Advanced Server database. Object type `addr_object_type` defines the attributes of an address: - -```text -CREATE OR REPLACE TYPE addr_object_type AS OBJECT -( - street VARCHAR2(30), - city VARCHAR2(20), - state CHAR(2), - zip NUMBER(5) -); -``` - -Object type `emp_obj_typ` defines the attributes of an employee. Note that one of these attributes is object type `ADDR_OBJECT_TYPE` as previously described. The object type body contains a method that displays the employee information: - -```text -CREATE OR REPLACE TYPE emp_obj_typ AS OBJECT -( - empno NUMBER(4), - ename VARCHAR2(20), - addr ADDR_OBJECT_TYPE, - MEMBER PROCEDURE display_emp(SELF IN OUT emp_obj_typ) -); - -CREATE OR REPLACE TYPE BODY emp_obj_typ AS - MEMBER PROCEDURE display_emp (SELF IN OUT emp_obj_typ) - IS - BEGIN - DBMS_OUTPUT.PUT_LINE('Employee No : ' || SELF.empno); - DBMS_OUTPUT.PUT_LINE('Name : ' || SELF.ename); - DBMS_OUTPUT.PUT_LINE('Street : ' || SELF.addr.street); - DBMS_OUTPUT.PUT_LINE('City/State/Zip: ' || SELF.addr.city || ', ' || - SELF.addr.state || ' ' || LPAD(SELF.addr.zip,5,'0')); - END; -END; -``` - -Listing 1.16 is a Java method that includes these user-defined object types: - -```text -public static void testUDT() throws SQLException { - Connection conn = null; - try { - conn = getEDBConnection(); - String commandText = "{call emp_obj_typ.display_emp(?)}"; - CallableStatement stmt = conn.prepareCall(commandText); - - // initialize emp_obj_typ structure - // create addr_object_type structure - Struct address = conn.createStruct("addr_object_type", - new Object[]{"123 MAIN STREET","EDISON","NJ",8817}); - Struct emp = conn.createStruct("emp_obj_typ", - new Object[]{9001,"JONES", address}); - - // set emp_obj_typ type param - stmt.registerOutParameter(1, Types.STRUCT, "emp_obj_typ"); - stmt.setObject(1, emp); - stmt.execute(); - - // extract emp_obj_typ object - emp = (Struct)stmt.getObject(1); - Object[] attrEmp = emp.getAttributes(); - System.out.println("empno: " + attrEmp[0]); - System.out.println("ename: " + attrEmp[1]); - - // extract addr_object_type attributes - address = (Struct) attrEmp[2]; - Object[] attrAddress = address.getAttributes(); - System.out.println("street: " + attrAddress[0]); - System.out.println("city: " + attrAddress[1]); - System.out.println("state: " + attrAddress[2]); - System.out.println("zip: " + attrAddress[3]); - } catch (ClassNotFoundException cnfe) { - System.err.println("Error: " + cnfe.getMessage()); - } finally { - if (conn != null) { - conn.close(); - } - } -} -``` - -A `CallableStatement` object is prepared based on the `display_emp()` method of the `emp_obj_typ` object type: - -```text -String commandText = "{call emp_obj_typ.display_emp(?)}"; -CallableStatement stmt = conn.prepareCall(commandText); -``` - -`createStruct()` initializes and creates instances of object types `addr_object_type` and `emp_obj_typ` named `address` and `emp`, respectively: - -```text -Struct address = conn.createStruct("addr_object_type", - new Object[]{"123 MAIN STREET","EDISON","NJ",8817}); -Struct emp = conn.createStruct("emp_obj_typ", - new Object[]{9001,"JONES", address}); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.STRUCT`) of `emp_obj_typ`: - -```text -stmt.registerOutParameter(1, Types.STRUCT, "emp_obj_typ"); -``` - -The `setObject()` method binds the object instance `emp` to the `IN OUT` placeholder. - -```text -stmt.setObject(1, emp); -``` - -A call to `stmt.execute()` executes the call to the `display_emp()` method: - -```text -stmt.execute(); -``` - -`getObject()` retrieves the `emp_obj_typ` object type. The attributes of the `emp` and `address` object instances are then retrieved and displayed: - -```text -emp = (Struct)stmt.getObject(1); -Object[] attrEmp = emp.getAttributes(); -System.out.println("empno: " + attrEmp[0]); -System.out.println("ename: " + attrEmp[1]); - -address = (Struct) attrEmp[2]; -Object[] attrAddress = address.getAttributes(); -System.out.println("street: " + attrAddress[0]); -System.out.println("city: " + attrAddress[1]); -System.out.println("state: " + attrAddress[2]); -System.out.println("zip: " + attrAddress[3]); -``` - -## Using a Collection - -Create collection types `NUMBER_ARRAY` and `CHAR_ARRAY` in the Advanced Server database: - -```text -CREATE OR REPLACE TYPE NUMBER_ARRAY AS TABLE OF NUMBER; -CREATE OR REPLACE TYPE CHAR_ARRAY AS TABLE OF VARCHAR(50); -``` - -Listing 1.17-a is an SPL function that uses collection types `NUMBER_ARRAY` and `CHAR_ARRAY` as `IN` parameters and `CHAR_ARRAY` as the `OUT` parameter. - -The function concatenates the employee ID from the `NUMBER_ARRAY IN` parameter with the employee name in the corresponding row from the `CHAR_ARRAY IN` parameter. The resulting concatenated entries are returned in the `CHAR_ARRAY OUT` parameter. - -```text -CREATE OR REPLACE FUNCTION concatEmpIdName -( - arrEmpIds NUMBER_ARRAY, - arrEmpNames CHAR_ARRAY -) RETURN CHAR_ARRAY -AS -DECLARE - i INTEGER := 0; - arrEmpIdNames CHAR_ARRAY; -BEGIN - arrEmpIdNames := CHAR_ARRAY(NULL,NULL); - FOR i IN arrEmpIds.FIRST..arrEmpIds.LAST LOOP - arrEmpIdNames(i) := arrEmpIds(i) || ' ' || arrEmpNames(i); - END LOOP; - RETURN arrEmpIdNames; -END; -``` - -Listing 1.17-b is a Java method that calls the Listing 1.17-a function, passing and retrieving the collection types: - -```text -public static void testTableOfAsInOutParams() throws SQLException { - Connection conn = null; - try { - conn = getEDBConnection(); - String commandText = "{? = call concatEmpIdName(?,?)}"; - CallableStatement stmt = conn.prepareCall(commandText); - - // create collections to specify employee id and name values - Array empIdArray = conn.createArrayOf("integer", - new Integer[]{7900, 7902}); - Array empNameArray = conn.createArrayOf("varchar", - new String[]{"JAMES", "FORD"}); - - // set TABLE OF VARCHAR as OUT param - stmt.registerOutParameter(1, Types.ARRAY); - - // set TABLE OF INTEGER as IN param - stmt.setObject(2, empIdArray, Types.OTHER); - - // set TABLE OF VARCHAR as IN param - stmt.setObject(3, empNameArray, Types.OTHER); - stmt.execute(); - java.sql.Array empIdNameArray = stmt.getArray(1); - String[] emps = (String[]) empIdNameArray.getArray(); - - System.out.println("items length: " + emps.length); - System.out.println("items[0]: " + emps[0].toString()); - System.out.println("items[1]: " + emps[1].toString()); - - } catch (ClassNotFoundException cnfe) { - System.err.println("Error: " + cnfe.getMessage()); - } finally { - if (conn != null) { - conn.close(); - } - } -} -``` - -A `CallableStatement` object is prepared to invoke the `concatEmpIdName()` function: - -```text -String commandText = "{? = call concatEmpIdName(?,?)}"; -CallableStatement stmt = conn.prepareCall(commandText); -``` - -`createArrayOf()` initializes and creates collections named `empIdArray` and `empNameArray`: - -```text -Array empIdArray = conn.createArrayOf("integer", - new Integer[]{7900, 7902}); -Array empNameArray = conn.createArrayOf("varchar", - new String[]{"JAMES", "FORD"}); -``` - -The call to `registerOutParameter()` registers the parameter type (`Types.ARRAY`) of the `OUT` parameter: - -```text -stmt.registerOutParameter(1, Types.ARRAY); -``` - -The `setObject()` method binds the collections `empIdArray` and `empNameArray` to the `IN` placeholders: - -```text -stmt.setObject(2, empIdArray, Types.OTHER); -stmt.setObject(3, empNameArray, Types.OTHER); -``` - -A call to `stmt.execute()` invokes the `concatEmpIdName()` function: - -```text -stmt.execute(); -``` - -`getArray()` retrieves the collection returned by the function. The first two rows consisting of the concatenated employee IDs and names are displayed: - -```text -java.sql.Array empIdNameArray = stmt.getArray(1); -String[] emps = (String[]) empIdNameArray.getArray(); -System.out.println("items length: " + emps.length); -System.out.println("items[0]: " + emps[0].toString()); -System.out.println("items[1]: " + emps[1].toString()); -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx deleted file mode 100644 index 89dcc58a532..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: "Asynchronous Notification Handling with NoticeListener" - ---- - - - -The Advanced Server JDBC Connector provides asynchronous notification handling functionality. A `notification` is a message generated by the server when an SPL (or PL/pgSQL) program executes a `RAISE NOTICE` statement. Each notification is sent from the server to the client application. To intercept a notification in a JDBC client, an application must create a `NoticeListener` object (or, more typically, an object derived from `NoticeListener`). - -It is important to understand that a notification is sent to the client as a result of executing an SPL (or PL/pgSQL) program. To generate a notification, you must execute an SQL statement that invokes a stored procedure, function, or trigger: the notification is delivered to the client as the SQL statement executes. Notifications work with any type of statement object; `CallableStatement` objects, `PreparedStatement` objects, or simple `Statement` objects. A JDBC program intercepts a notification by associating a `NoticeListener` with a `Statement` object. When the `Statement` object executes an SQL statement that raises a notice, JDBC invokes the `noticeReceived()` method in the associated `NoticeListener`. - -Listing 1.18-a shows an SPL procedure that loops through the `emp` table and gives each employee a 10% raise. As each employee is processed, `adjustSalary` executes a `RAISE NOTICE` statement (in this case, the message contained in the notification reports progress to the client application): - -```text -CREATE OR REPLACE PROCEDURE adjustSalary -IS - v_empno NUMBER(4); - v_ename VARCHAR2(10); - CURSOR emp_cur IS SELECT empno, ename FROM emp; -BEGIN - OPEN emp_cur; - LOOP - FETCH emp_cur INTO v_empno, v_ename; - EXIT WHEN emp_cur%NOTFOUND; - - UPDATE emp SET sal = sal * 1.10 WHERE empno = v_empno; - RAISE NOTICE 'Salary increased for %', v_ename; - END LOOP; - CLOSE emp_cur; -END; -``` - -Listing 1.18-b shows how to create a `NoticeListener` that intercepts notifications in a JDBC application: - -```text -public void NoticeExample(Connection con) -{ - CallableStatement stmt; - try - { - stmt = con.prepareCall("{call adjustSalary()}"); - - MyNoticeListener listener = new MyNoticeListener(); - ((BaseStatement)stmt).addNoticeListener(listener); - stmt.execute(); - System.out.println("Finished"); - } - catch (SQLException e) - { - System.out.println("An error has occurred."); - System.out.println("See full details below."); - e.printStackTrace(); - } -} -class MyNoticeListener implements NoticeListener -{ - public MyNoticeListener() - { - } - - public void noticeReceived(SQLWarning warn) - { - System.out.println("NOTICE: "+ warn.getMessage()); - } -} -``` - -The `NoticeExample()` method is straightforward; it expects a single argument, a `Connection` object, from the caller: - -```text -public void NoticeExample(Connection con) -``` - -`NoticeExample()` begins by preparing a call to the `adjustSalary` procedure shown in example 1.10-a. As you would expect, `con.prepareCall()` returns a `CallableStatement` object. Before executing the `CallableStatement`, you must create an object that implements the `NoticeListener` interface and add that object to the list of `NoticeListeners` associated with the `CallableStatement`: - -```text -CallableStatement stmt = con.prepareCall("{call adjustSalary()}"); -MyNoticeListener listener = new MyNoticeListener(); -((BaseStatement)stmt).addNoticeListener(listener); -``` - -Once the `NoticeListener` is in place, `NoticeExample` method executes the `CallableStatement` (invoking the `adjustSalary` procedure on the server) and displays a message to the user: - -```text -stmt.execute(); -System.out.println("Finished"); -``` - -Each time the `adjustSalary` procedure executes a `RAISE NOTICE` statement, the server sends the text of the message (`"Salary increased for ..."`) to the `Statement` (or derivative) object in the client application. JDBC invokes the `noticeReceived()` method (possibly many times) `before` the call to `stmt.execute()` completes. - -```text -class MyNoticeListener implements NoticeListener -{ - public MyNoticeListener() - { - } - - public void noticeReceived(SQLWarning warn) - { - System.out.println("NOTICE: "+ warn.getMessage()); - } -} -``` - -When JDBC calls the `noticeReceived()` method, it creates an `SQLWarning` object that contains the text of the message generated by the `RAISE NOTICE` statement on the server. - -Notice that each `Statement` object keeps a `list` of `NoticeListeners` . When the JDBC driver receives a notification from the server, it consults the list maintained by the `Statement` object. If the list is empty, the notification is saved in the `Statement` object (you can retrieve the notifications by calling `stmt.getWarnings()` once the call to `execute()` completes). If the list is not empty, the JDBC driver delivers an `SQLWarning` to each listener, in the order in which the listeners were added to the `Statement` . diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/index.mdx deleted file mode 100644 index 31ef32ea08d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/08_advanced_jdbc_connector_functionality/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Advanced JDBC Connector Functionality" - ---- - - - -The previous example created a graphical user interface that displayed a result set in a `JTable`. Now we will switch gears and show you some of the more advanced features of the Advanced Server JDBC Connector. - -To avoid unnecessary clutter, the rest of the code samples in this document will use the console to interact with the user instead of creating a graphical user interface. - -
- -reducing_client-side_resource_requirements using_preparedstatements_to_send_sql_commands executing_stored_procedures using_ref_cursors_with_java using_bytea_data_with_java using_object_types_and_collections_with_java asynchronous_notification_handling_with_noticelistener - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx deleted file mode 100644 index 9674504664c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Configuring the Server" - ---- - - - -For information about configuring PostgreSQL or Advanced Server for SSL, refer to: - - - -!!! Note - Before you access your SSL enabled server from Java, ensure that you can log in to your server via `edb-psql`. The sample output should look similar to the one shown below if you have established a SSL connection: - - ```text - $ ./bin/edb-psql -U enterprisedb -d edb - psql.bin (12.0.1) - SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) - Type "help" for help. - - edb=# - ``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx deleted file mode 100644 index 343570b41ae..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Configuring the Client" - ---- - - - -There are a number of connection parameters for configuring the client for SSL. To know more about the SSL Connection parameters and Additional Connection Properties, refer to [Section 5.2](../../05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/#connecting_to_the_database). - -In this section, you will learn more about the behavior of ssl connection parameters when passed with different values. When you pass the connection parameter `ssl=true` into the driver, the driver validates the SSL certificate and verifies the hostname. On contrary to this behavior, using `libpq` defaults to a non-validating SSL connection. - -You can get better control of the SSL connection using the `sslmode` connection parameter. This parameter is the same as the `libpq sslmode` parameter and the existing SSL implements the following sslmode connection parameters. - -## sslmode Connection Parameters - -**sslmode=require** - -This mode makes the encryption mandatory and also requires the connection to fail if it can’t be encrypted. The server is configured to accept SSL connections for this Host/IP address and that the server recognizes the client certificate. - -!!! Note - In this mode, the JDBC driver accepts all server certificates. - -**sslmode=verify-ca** - -If `sslmode=verify-ca`, the server is verified by checking the certificate chain up to the root certificate stored on the client. - -**sslmode=verify-full** - -If `sslmode=verify-full`, the server host name is verified to make sure it matches the name stored in the server certificate. The SSL connection fails if the server certificate cannot be verified. This mode is recommended in most security-sensitive environments. - -In the case where the certificate validation is failing you can try `sslcert=` and `LibPQFactory` will not send the client certificate. If the server is not configured to authenticate using the certificate it should connect. - -The location of the client certificate, client key and root certificate can be overridden with the `sslcert`, `sslkey`, and `sslrootcert` settings respectively. These default to `/defaultdir/postgresql.crt`, `/defaultdir/postgresql.pk8`, and `/defaultdir/root.crt` respectively where defaultdir is ${user.home}/.postgresql/ in unix systems and %appdata%/postgresql/ on windows. - -In this mode, when establishing a SSL connection the JDBC driver will validate the server's identity preventing "man in the middle" attacks. It does this by checking that the server certificate is signed by a trusted authority, and that the host you are connecting to, is the same as the hostname in the certificate. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx deleted file mode 100644 index 6e50742a54c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Testing the SSL JDBC Connection" - ---- - - - -If you are using Java's default mechanism (not `LibPQFactory`) to create the SSL connection, you need to make the server certificate available to Java, which can be achieved by implementing steps given below: - -1. Set the following property in the Java program. - - String url=“jdbc:edb://localhost/test?user=fred&password=secret&ssl=true”; - -2. Convert the server certificate to Java format: - - `$ openssl x509 -in server.crt -out server.crt.der -outform der` - -3. Import this certificate into Java's system truststore. - - ```text - $ keytool -keystore $JAVA_HOME/lib/security/cacerts -alias postgresql-import -file server.crt.der - ``` - -4. If you do not have access to the system cacerts truststore, create your own truststore as below: - - ```text - $ keytool -keystore mystore -alias postgresql -import -file server.crt.der - ``` - -5. Start your Java application and test the program. - - ```text - $ java -Djavax.net.ssl.trustStore=mystore com.mycompany.MyApp - ``` - -For example: - -```text -$java -classpath .:/usr/edb/jdbc/edb-jdbc18.jar– -Djavax.net.ssl.trustStore=mystore pg_test2 public -``` - -!!! Note - To troubleshoot connection issues, add `-Djavax.net.debug=ssl` to the java command. - -## Using SSL without Certificate Validation - -By default the combination of `SSL=true` and setting the connection URL parameter `sslfactory=com.edb.ssl.NonValidatingFactory` encrypts the connection but does not validate the SSL certificate. To enforce certificate validation, you must use a `Custom SSLSocketFactory`. - -For more details about writing a `Custom SSLSocketFactory`, refer to: - - diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx deleted file mode 100644 index 95a9e871c08..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Using Certificate Authentication Without a Password" - ---- - - - -To use certificate authentication without a password, you must: - -1. Convert the client certificate to DER format. - -```text -$ openssl x509 –in postgresql.crt -out postgresql.crt.der -outform -der -``` - -2. Convert the client key to DER format. - -```text -$ openssl pkcs8 -topk8 -outform DER -in postgresql.key -out -postgresql.key.pk8 –nocrypt -``` - -3. Copy the client files (`postgresql.crt.der`, `postgresql.key.pk8`) and root certificate to the client machine and use the following properties in your java program to test it: - -```text -String url = "jdbc:edb://snvm001:5444/edbstore"; - Properties props = new Properties(); - props.setProperty("user","enterprisedb"); - props.setProperty("ssl","true"); - props.setProperty("sslmode","verify-full"); - props.setProperty("sslcert","postgresql.crt.der"); - props.setProperty("sslkey","postgresql.key.pk8"); - props.setProperty("sslrootcert","root.crt"); -``` - -4. Compile the Java program and test it. - -```text -$ java -Djavax.net.ssl.trustStore=mystore -classpath -.:./edb-jdbc18.jar pg_ssl public -``` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/index.mdx deleted file mode 100644 index 135f4d6a9ec..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/01_using_ssl/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Using SSL" - ---- - - - -In this section, you will learn about: - -- Configuring the server -- Configuring the client -- Testing the SSL JDBC Connection -- Using SSL without Certificate Validation -- Using Certificate Authentication (without a password) - -
- -configuring_the_server configuring_the_client testing_the_ssl_jdbc_connection using_certificate_authentication_without_a_password - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/02_scram_compatibility.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/02_scram_compatibility.mdx deleted file mode 100644 index 503e8bbbbed..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/02_scram_compatibility.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Scram Compatibility" - ---- - - - -The EDB JDBC driver provides SCRAM-SHA-256 support for Advanced Server versions 10, 11, and 12. For JRE/JDK version 1.8, this support is available from EDB JDBC Connector release 42.2.2.1 onwards; for JRE/JDK version 1.7, this support is available from EDB JDBC Connector release 42.2.5 onwards. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx deleted file mode 100644 index c419244e916..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx +++ /dev/null @@ -1,163 +0,0 @@ ---- - -title: "Support for GSSAPI Encrypted Connection" - ---- - - - -The EDB JDBC driver supports GSSAPI encrypted connections for EDB Postgres Advanced Server 12 onwards. This support is available from EDB JDBC Connector release `42.2.19.1` onwards. - -`gssEncMode` parameter controls GSSAPI Encrypted Connection. The parameter can have any of the below four values: - -- `Disable` -Disables any attempt to connect using GSS encrypted mode. - -- `Allow` -Attempts to connect in plain text then if the server requests it will switch to encrypted mode. - -- `Prefer` -Attempts to connect in encrypted mode and fall back to plain text if it fails to acquire an encrypted connection. - -- `Require` -Attempts to connect in encrypted mode and will fail to connect if that is not possible. - -## GSSAPI/SSPI Authentication - -The default behavior of GSSAPI/SSPI authentication on Windows and Linux platforms is as following: - -- By default, on Windows, the EDB JDBC driver tries to connect using SSPI. -- By default, on Linux, the EDB JDBC Driver tries to connect using GSSAPI. - -This default behavior is controlled using the `gsslib` connection parameter that takes one of the following three values: - -- `auto` -The driver attempts for SSPI authentication when the server requests it, the EDB JDBC client is running on Windows, and the Waffle libraries required for SSPI are on the CLASSPATH. Otherwise it opts for Kerberos/GSSAPI authentication via JSSE. Note that unlike libpq, the EDB JDBC driver does not use Windows' SSPI libraries for Kerberos (GSSAPI) requests. - -- `gssapi` -This option forces JSSE's GSSAPI authentication even when SSPI is available. - -- `sspi` -This option forces SSPI authentication. This authentication fails on Linux or where SSPI is unavailable. - -## Using SSPI (Windows only environment) - -When the EDB Advanced Server and JDBC client both are on Windows, JDBC driver connects with SSPI authentication using one of the following connection strings: - -```text -Class.forName("com.edb.Driver"); -con = DriverManager.getConnection("jdbc:edb://localhost:5444/edb"); -OR -con = DriverManager.getConnection("jdbc:edb://localhost:5444/edb?gsslib=sspi"); -``` - -!!! Note - - - gsslib=sspi is optional because the server requires SSPI authentication. - - There is no need to specify username and password. The logged-in user credentials are used to authenticate the user. - -**Example**: - -The example assumes that SSPI authentication is configured on Windows machine. Suppose `edb-jdbc18.jar` path is `` and waffle libraries path is ``. Here is how to set `CLASSPATH` and run JEdb sample: - -```text -set CLASSPATH=\edb-jdbc18.jar;\*; -javac JEdb.java -java JEdb -``` - -## Using GSSAPI (Linux only environment) - -When the EDB Advanced Server and JDBC client both are on Linux, JDBC driver connects with GSSAPI authentication using the following connection string: - -```text - -Class.forName("com.edb.Driver"); -Properties connectionProps = new Properties(); -connectionProps.setProperty("user", "postgres/myrealm.example@MYREALM.EXAMPLE"); -String databaseUrl = "jdbc:edb://myrealm.example:5444/edb"; -con = DriverManager.getConnection(databaseUrl, connectionProps); -``` - -!!! Note - - `gsslib=gssapi` is optional because the server requires GSSAPI authentication. - -**Example**: - -This example assumes that GSS Authentication is configured on Linux machine. -Create a file named pgjdbc.conf with the following contents. - -```text -pgjdbc { -com.sun.security.auth.module.Krb5LoginModule required -doNotPrompt=true -useTicketCache=true -renewTGT=true -debug=true; -}; -``` - -Suppose pgjdbc.conf is placed at `/etc/pgjdbc.conf`. Here is how to run JEdb sample: - -```text -javac JEdb.java -java -Djava.security.auth.login.config=/etc/pgjdbc.conf -cp .:edb-jdbc18.jar JEdb -``` - -## Using SSPI/GSSAPI (Windows + Linux environment) - -When the EDB Advanced Server is on Linux with authentication configured as GSSAPI and JDBC client is on Windows, the EDB JDBC connects either using SSPI or GSSAPI authentication. - -For `gsslib=gssapi` or `gsslib=auto`, EDB JDBC uses SSPI while for `gsslib=gssapi` it uses GSSAPI authentication. - -**Example**: - -This example assumes that GSS authentication is configured between Windows Active Directory and Linux machine. - -**SSPI** - -In this scenario, JDBC is using SSPI authentication. Create the connection using the following code: - -```text -Class.forName("com.edb.Driver"); -Properties connectionProps = new Properties(); -connectionProps.setProperty("user", "david@MYREALM.EXAMPLE"); -String databaseUrl = "jdbc:edb://pg.myrealm.example:5444/edb?gsslib=sspi"; -con = DriverManager.getConnection(databaseUrl, connectionProps); -``` -Running EDB JDBC based app in this case is the same as described in the Section: Using SSPI (Windows only environment). - -**GSSAPI** - -In this scenario, JDBC is using GSSAPI authentication. Create the connection using the following code: - -```text -Class.forName("com.edb.Driver"); -Properties connectionProps = new Properties(); -connectionProps.setProperty("user", "david@MYREALM.EXAMPLE"); -String databaseUrl = "jdbc:edb://pg.myrealm.example:5444/edb?gsslib=gssapi"; -con = DriverManager.getConnection(databaseUrl, connectionProps); -``` - -Set Up the Kerberos Credential Cache File and obtain a ticket. - -Create a new directory say `c:\temp`, and a system environment variable `KRB5CCNAME`. In the variable value field, enter `c:\temp\krb5cache`. - -!!! Note - - krb5cache is a file that is managed by the Kerberos software. - -Obtain a Ticket for a Kerberos Principal either using MIT Kerberos Ticket Manager or using a keytab file using ktpass utility. - -Create `pgjdbc.conf` file with the same contents as described in Section: Using GSSAPI (Linux only environment). - -Suppose `pgjdbc.conf` is placed at `c:\pgjdbc.conf`. Here is how to run JEdb sample: - -```text -set CLASSPATH=C:\Program Files\edb\jdbc\edb-jdbc18.jar; -java -Djava.security.auth.login.config=c:\pgjdbc.conf JEdb -``` - - - diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/index.mdx deleted file mode 100644 index 46fb10c12cc..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/09_security_and_encryption/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Security and Encryption" - ---- - -PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. This requires that OpenSSL is installed on both client and server systems and that support in PostgreSQL is enabled at build time. - - - -
- -using_ssl scram_compatibility support_for_gssapi_encrypted_connection - -
diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/10_advanced_server_jdbc_connector_logging.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/10_advanced_server_jdbc_connector_logging.mdx deleted file mode 100644 index 75e2c0bf26d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/10_advanced_server_jdbc_connector_logging.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Advanced Server JDBC Connector Logging" - ---- - -The Advanced Server JDBC Connector supports the use of logging to help resolve issues with the JDBC Connector when used in your application. The JDBC Connector uses the logging APIs of `java.util.logging` that was part of Java since JDK 1.4. For information on `java.util.logging`, see [The PostgreSQL JDBC Driver](https://jdbc.postgresql.org/documentation/head/logging.html). - -!!! Note - Previous versions of the Advanced Server JDBC Connector used a custom mechanism to enable logging, which is now replaced by the use of `java.util.logging` in versions moving forward from community version 42.1.4.1. The older mechanism is no longer available. - -## Enabling Logging with Connection Properties (static) - -You can directly configure logging within the connection properties of the JDBC Connector. The connection properties related to logging are `loggerLevel` and `loggerFile`. - -`loggerLevel` - -Logger level of the driver. Allowed values are `OFF`, `DEBUG`, or `TRACE`. This option enables the `java.util.logging.Logger` level of the driver to correspond to the following Advanced Server JDBC levels: - -| loggerLevel | java.util.logging | -| ----------- | ----------------- | -| OFF | OFF | -| DEBUG | FINE | -| TRACE | FINEST | - -`loggerFile` - -File name output of the logger. The default is `java.util.logging.ConsoleHandler`. The following example sets the logging level to `TRACE (FINEST)` and the log file `to EDB-JDBC.LOG`: - - `jdbc:edb://myhost:5444/mydb?loggerLevel=TRACE&loggerFile=EDB-JDBC.LOG` - -## Enabling Logging with logging.properties (dynamic) - -You can use logging properties to configure the driver dynamically (for example, when using the JDBC Connector with an application server such as Tomcat, JBoss, WildFly, etc.), which makes it easier to enable/disable logging at runtime. The following example demonstrates configuring logging dynamically: - -```text -handlers = java.util.logging.FileHandler -//logging level -.level = OFF -``` - -The default file output is in the user’s home directory: - -```text -java.util.logging.FileHandler.pattern = %h/EDB-JDBC%u.log -java.util.logging.FileHandler.limit = 5000000 -java.util.logging.FileHandler.count = 20 -java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter java.util.logging.FileHandler.level = FINEST java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n -``` - -Use the following command to set the logging level for the JDBC Connector to FINEST (maps to `loggerLevel`): - - `com.edb.level=FINEST` - -Then, execute the application with the logging configuration: - - `java –jar -Djava.util.logging.config.file=logging.properties run.jar` diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/11_reference_jdbc_data_types.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/11_reference_jdbc_data_types.mdx deleted file mode 100644 index b9fcffe3c83..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/11_reference_jdbc_data_types.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Reference - JDBC Data Types" - ---- - - - -The following table lists the JDBC data types supported by Advanced Server and the JDBC connector. If you are binding to an Advanced Server type (shown in the middle column) using the `setObject()` method, supply a JDBC value of the type shown in the left column. When you retrieve data, the `getObject()` method will return the object type listed in the right-most column: - -| JDBC Type | Advanced Server Type | getObject() returns | -| -------------------- | ---------------------- | ------------------------------------------ | -| INTEGER | INT4 | java.lang.Integer | -| TINYINT, SMALLINT | INT2 | java.lang.Integer | -| BIGINT | INT8 | java.lang.Long | -| REAL | FLOAT4 | java.lang.Float | -| DOUBLE, FLOAT | FLOAT8 | java.lang.Double (Float is same as double) | -| DECIMAL, NUMERIC | NUMERIC | java.math.BigDecimal | -| CHAR | BPCHAR | java.lang.String | -| VARCHAR, LONGVARCHAR | VARCHAR | java.lang.String | -| DATE | DATE | java.sql.Date | -| TIME | TIME, TIMETZ | java.sql.Timestamp | -| TIMESTAMP | TIMESTAMP, TIMESTAMPTZ | java.sql.Timestamp | -| BINARY | BYTEA | byte\[](primitive) | -| BOOLEAN, BIT | BOOL | java.lang.Boolean | -| Types.REF | REFCURSOR | java.sql.ResultSet | -| Types.REF_CURSOR | REFCURSOR | java.sql.ResultSet | -| Types.OTHER | REFCURSOR | java.sql.ResultSet | -| Types.OTHER | UUID | java.util.UUID | -| Types.SQLXML | XML | java.sql.SQLXML | - -!!! Note - `Types.REF_CURSOR` is only supported for JRE 4.2. - -`Types.OTHER` is not only used for UUID, but is also used if you do not specify any specific type and allow the server or the JDBC driver to determine the type. If the parameter is an instance of `java.util.UUID`, the driver determines the appropriate internal type and sends it to the server. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/core_classes_and_interfaces.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/core_classes_and_interfaces.png deleted file mode 100755 index 0b23a61e5a2..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/core_classes_and_interfaces.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2f57e25675a0a63feb0a7b4ec5bf30789c3e0532082300c9e7ad01cd3168d9f -size 13872 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/drivermanager_drivers.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/drivermanager_drivers.png deleted file mode 100755 index bf3c7dd87bd..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/drivermanager_drivers.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0299cd7a34a8bf56b1bb830012727deffa380d9f41a3d0e113ee2880032ff793 -size 12062 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_class_relationships.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_class_relationships.png deleted file mode 100755 index fd2c13c36c4..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_class_relationships.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c45f3033cc5aad9c7063cf56d8c2dd07c8bf370139125c54ee567bf7b3b35125 -size 56793 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_complete.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_complete.png deleted file mode 100755 index 1df118eaba4..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_complete.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d356fb22eb767301f0a32bfff7e35d3187add1b605261911bb4d6e3b96719674 -size 319331 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_dialog.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_dialog.png deleted file mode 100755 index 1fe21286260..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_dialog.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbd0b71eb97287550fa0854685294719e17ac967d50b3c5c90ec554c1594881c -size 27533 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_wizard.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_wizard.png deleted file mode 100755 index 86e252a41ca..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/jdbc_installation_wizard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a08ce10f35f93dbdb419b4329e340f7bde0e705cb25683512007d1874be89c6 -size 265440 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/ready_to_install.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/ready_to_install.png deleted file mode 100755 index e3a38c7bf9c..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/ready_to_install.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc9d815a3227f0749ade3d91944de68c3a1fad1213da387d2c27563284d6c790 -size 23188 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/selecting_the_connectors_installer.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/selecting_the_connectors_installer.png deleted file mode 100755 index fdbaf5d3cfe..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/selecting_the_connectors_installer.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06b88193e81437e2d6e58e2f2d78498df6148f39ed9af97e4014de0c8b5d78bc -size 167172 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/starting_stackbuilder_plus.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/starting_stackbuilder_plus.png deleted file mode 100755 index 11665300652..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/starting_stackbuilder_plus.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce6bcefb865ca14239fb7e0e2ac5149ed56251cfbc5153869070d039f70857c6 -size 91989 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/images/the_showemployees_window.png b/product_docs/docs/jdbc_connector/42.2.19.1/images/the_showemployees_window.png deleted file mode 100755 index 79d55ed1b4d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/images/the_showemployees_window.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a1a2463d505c4d939977a201f1beaa4ce84b4e1c2259bceaab146af0ab6d1d06 -size 18945 diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/index.mdx b/product_docs/docs/jdbc_connector/42.2.19.1/index.mdx deleted file mode 100644 index ff6030b98f5..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.19.1/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "EDB Postgres Advanced Server JDBC Connector Guide" -directoryDefaults: - description: "EDB JDBC Connector Version 42.2.12.3 Documentation and release notes." - ---- - -The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. This guide provides installation instructions, usage instructions, and examples that demonstrate the Advanced Server specific functionality of the JDBC Connector. - -The EDB JDBC connector is written in Java and conforms to Sun's JDK architecture. For more information, see [JDBC Driver Types](03_advanced_server_jdbc_connector_overview/#jdbc-driver-types) - -The EDB JDBC connector is built on and supports all of the functionality of the PostgreSQL community driver. For more information about the features and functionality of the driver, please refer to the community [documentation](https://jdbc.postgresql.org/documentation/head/index.html). - -
- -release_notes requirements_overview advanced_server_jdbc_connector_overview installing_and_configuring_the_jdbc_connector using_the_advanced_server_jdbc_connector_with_java_applications executing_sql_commands_with_executeUpdate() adding_a_graphical_interface_to_a_java_program advanced_jdbc_connector_functionality security_and_encryption advanced_server_jdbc_connector_logging reference_jdbc_data_types conclusion - -
diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/01_release_notes.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/10_jdbc_42.2.24.1_rel_notes.mdx similarity index 92% rename from product_docs/docs/jdbc_connector/42.2.24.1/01_release_notes.mdx rename to product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/10_jdbc_42.2.24.1_rel_notes.mdx index 21d7c717f40..e5eed7a3f39 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/01_release_notes.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/10_jdbc_42.2.24.1_rel_notes.mdx @@ -1,6 +1,7 @@ --- -title: "Release Notes" - +title: "Version 42.2.24.1" +redirects: + - ../01_release_notes/ --- The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. diff --git a/product_docs/docs/jdbc_connector/42.2.19.1/01_release_notes.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/12_jdbc_42.2.19.1_rel_notes.mdx similarity index 78% rename from product_docs/docs/jdbc_connector/42.2.19.1/01_release_notes.mdx rename to product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/12_jdbc_42.2.19.1_rel_notes.mdx index bc1d2bca183..b2ea7e65634 100644 --- a/product_docs/docs/jdbc_connector/42.2.19.1/01_release_notes.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/12_jdbc_42.2.19.1_rel_notes.mdx @@ -1,5 +1,5 @@ --- -title: "Release Notes" +title: "Version 42.2.19.1" --- The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. @@ -9,7 +9,7 @@ New features, enhancements, bug fixes, and other changes in the EDB JDBC Connect | Type | Description | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Upstream Merge | Merged with the upstream community driver version `42.2.19`. See the [community JDBC documentation](https://jdbc.postgresql.org/documentation/head/index.html) for details. | -| Enhancement | EDB JDBC Connector now supports GSSAPI encrypted connection. | +| Enhancement | EDB JDBC Connector now supports GSSAPI encrypted connection. See [Support for GSSAPI Encrypted Connection](../09_security_and_encryption/03_support_for_gssapi_encrypted_connection). | !!! Note EDB JDBC Connector v42.2.12.3 does not support Java 1.6 and 1.7. Previous versions of EDB JDBC Connector continue to support Java 1.6 and 1.7. diff --git a/product_docs/docs/jdbc_connector/42.2.12.3/01_release_notes.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/14_jdbc_42.2.12.3_rel_notes.mdx similarity index 96% rename from product_docs/docs/jdbc_connector/42.2.12.3/01_release_notes.mdx rename to product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/14_jdbc_42.2.12.3_rel_notes.mdx index b52bded5e30..f33f9170d2e 100644 --- a/product_docs/docs/jdbc_connector/42.2.12.3/01_release_notes.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/14_jdbc_42.2.12.3_rel_notes.mdx @@ -1,5 +1,5 @@ --- -title: "Release Notes" +title: "Version 42.2.12.3" legacyRedirects: diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/16_jdbc_42.2.9.1_rel_notes.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/16_jdbc_42.2.9.1_rel_notes.mdx new file mode 100644 index 00000000000..a7301c5d857 --- /dev/null +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/16_jdbc_42.2.9.1_rel_notes.mdx @@ -0,0 +1,12 @@ +--- +title: "Version 42.2.9.1" + +--- + +The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. + +New features, enhancements, bug fixes, and other changes in the EDB JDBC Connector `42.2.9.1` include: + +| Type | Description | +| -------------- | ----------------------------------------------------------------------------------------- | +| Enhancement | EDB JDBC Connector is now supported on Red Hat Enterprise Linux and CentOS (x86_64) 8.x. | \ No newline at end of file diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/18_jdbc_42.2.8.1_rel_notes.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/18_jdbc_42.2.8.1_rel_notes.mdx new file mode 100644 index 00000000000..a9405bae07b --- /dev/null +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/18_jdbc_42.2.8.1_rel_notes.mdx @@ -0,0 +1,15 @@ +--- +title: "Version 42.2.8.1" + +--- + +The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. + +New features, enhancements, bug fixes, and other changes in the EDB JDBC Connector `42.2.8.1` include: + +| Type | Description | +| -------------- | ------------------------------------------------------------------------------- | +| Upstream Merge | Merged with the upstream community driver version `42.2.8`. See the community [JDBC documentation](https://jdbc.postgresql.org/documentation/head/index.html) for details. | +| Enhancement | EDB JDBC Connector now supports EDB Postgres Advanced Server 12. | +| Enhancement | EDB JDBC Connector is now supported on the Windows Server 2019 platform. | + diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/index.mdx new file mode 100644 index 00000000000..91f566fc24f --- /dev/null +++ b/product_docs/docs/jdbc_connector/42.2.24.1/01_jdbc_rel_notes/index.mdx @@ -0,0 +1,17 @@ +--- +title: "Release Notes" +--- + +The EDB JDBC connector documentation describes the latest version of EDB JDBC connector. + +These release notes describe what is new in each release. When a minor or patch release introduces new functionality, indicators in the content identify which version introduced the new feature. + +| Version | Release Date | +| ---------------------------------------- | ------------ | +| [42.2.24.1](10_jdbc_42.2.24.1_rel_notes) | 2021 Nov 5 | +| [42.2.19.1](12_jdbc_42.2.19.1_rel_notes) | 2021 Apr 15 | +| [42.2.12.3](14_jdbc_42.2.12.3_rel_notes) | 2020 Oct 22 | +| [42.2.9.1](16_jdbc_42.2.9.1_rel_notes) | 2020 May 18 | +| [42.2.8.1](18_jdbc_42.2.8.1_rel_notes) | 2019 Oct 21 | + + diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/02_requirements_overview.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/02_requirements_overview.mdx index f714374ef7a..39c48130b67 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/02_requirements_overview.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/02_requirements_overview.mdx @@ -1,40 +1,25 @@ --- title: "Requirements Overview" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/requirements_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/requirements_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/requirements_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/requirements_overview.html" --- -## Supported Versions +This table lists the latest JDBC Connector versions and their supported corresponding EDB Postgres Advanced Server (EPAS) versions. JDBC Connector is supported on the same platforms as EDB Postgres Advanced Server. See [Product Compatibility](https://www.enterprisedb.com/platform-compatibility#epas) for details. -The EDB JDBC Connector is certified with Advanced Server version 9.6 and above. - -## Supported Platforms - -The EDB JDBC Connector native packages are supported on the following 64 bit Linux platforms: - -- RHEL and CentOS 7.x (x86_64) -- RHEL and Rocky Linux and AlmaLinux 8.x (x86_64) -- OL Linux 7.x and 8.x -- RHEL 8.x (ppc64le) -- SLES 12.x -- Debian 9.x and 10.x -- Ubuntu 18.04 and Ubuntu 20.4 LTS - -The EDB JDBC Connector graphical installers are supported on the following Windows platforms: - -64-bit Windows: - -- Windows Server 2019 -- Windows Server 2016 -- Windows Server 2012 R2 -- Windows 10 -- Windows 8.1 - -32-bit Windows: - -- Windows 10 -- Windows 8.1 +| JDBC Connector | EPAS 14 | EPAS 13 | EPAS 12 | EPAS 11 | EPAS 10 | +| -------------------------------------------------------------- | ------- | ------- | ------- | ------- | ------- | +| [42.2.24.1](01_jdbc_rel_notes/10_jdbc_42.2.24.1_rel_notes.mdx) | Y | Y | Y | Y | Y | +| [42.2.19.1](01_jdbc_rel_notes/12_jdbc_42.2.19.1_rel_notes.mdx) | N | Y | Y | Y | Y | +| [42.2.12.3](01_jdbc_rel_notes/12_jdbc_42.2.12.3_rel_notes.mdx) | N | N | Y | Y | Y | +| [42.2.9.1](01_jdbc_rel_notes/12_jdbc_42.2.9.1_rel_notes.mdx) | N | N | Y | Y | Y | +| [42.2.8.1](01_jdbc_rel_notes/12_jdbc_42.2.8.1_rel_notes.mdx) | N | N | Y | Y | Y | ## Supported JDK Distribution diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/03_advanced_server_jdbc_connector_overview.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/03_advanced_server_jdbc_connector_overview.mdx index 82294f6a93a..1d72a480462 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/03_advanced_server_jdbc_connector_overview.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/03_advanced_server_jdbc_connector_overview.mdx @@ -1,6 +1,12 @@ --- title: "Advanced Server JDBC Connector Overview" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_server_jdbc_connector_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/advanced_server_jdbc_connector_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/advanced_server_jdbc_connector_overview.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_server_jdbc_connector_overview.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx index 63d3288ddcf..3e6b2251494 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/01_installing_the_connector_with_an_rpm_package.mdx @@ -1,6 +1,12 @@ --- title: "Installing the Connector with an RPM Package" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_the_connector_with_an_rpm_package.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/installing_the_connector_with_an_rpm_package.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/installing_the_connector_with_an_rpm_package.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_the_connector_with_an_rpm_package.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx index 8a1097cd9f8..f4e382aa409 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/02_installing_the_connector_on_an_sles_12_host.mdx @@ -1,6 +1,12 @@ --- title: "Installing the Connector on an SLES 12 Host" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_the_connector_on_an_sles_12_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/installing_the_connector_on_an_sles_12_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/installing_the_connector_on_an_sles_12_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_the_connector_on_an_sles_12_host.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx index c4927285baf..fb1310dc538 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/03_installing_a_deb_package_on_a_debian_or_ubuntu_host.mdx @@ -1,6 +1,12 @@ --- title: "Installing the Connector on a Debian or Ubuntu Host" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_a_deb_package_on_a_debian_or_ubuntu_host.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx index 107edff3d50..b4e452f66d5 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/04_using_the_graphical_installer_to_install_the_connector.mdx @@ -1,6 +1,12 @@ --- title: "Using the Graphical Installer to Install the Connector" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_the_graphical_installer_to_install_the_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_the_graphical_installer_to_install_the_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_the_graphical_installer_to_install_the_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_the_graphical_installer_to_install_the_connector.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx index 863a0b6dc3f..2a42c153631 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/05_configuring_the_advanced_server_jdbc_connector.mdx @@ -1,6 +1,12 @@ --- title: "Configuring the Advanced Server JDBC Connector" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/configuring_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/configuring_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_advanced_server_jdbc_connector.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/index.mdx index 7655c8c8f9a..72268f84723 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/04_installing_and_configuring_the_jdbc_connector/index.mdx @@ -1,6 +1,12 @@ --- title: "Installing and Configuring the JDBC Connector" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/installing_and_configuring_the_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/installing_and_configuring_the_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/installing_and_configuring_the_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/installing_and_configuring_the_jdbc_connector.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx index a83ca9c72a9..e33344bb25e 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/01_loading_the_advanced_server_jdbc_connector.mdx @@ -1,6 +1,12 @@ --- title: "Loading the Advanced Server JDBC Connector" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/loading_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/loading_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/loading_the_advanced_server_jdbc_connector.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/loading_the_advanced_server_jdbc_connector.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx index ebf1aa9d5ec..19c91c5c22f 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/01_additional_connection_properties.mdx @@ -1,6 +1,12 @@ --- title: "Additional Connection Properties" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/additional_connection_properties.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/additional_connection_properties.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/additional_connection_properties.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/additional_connection_properties.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx index ef088539419..e4aed7b4220 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/02_preferring_synchronous_secondary_database_servers.mdx @@ -1,6 +1,12 @@ --- title: "Preferring Synchronous Secondary Database Servers" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/preferring_synchronous_secondary_database_servers.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/preferring_synchronous_secondary_database_servers.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/preferring_synchronous_secondary_database_servers.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/preferring_synchronous_secondary_database_servers.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx index 4a7b2916e58..5d67ded2d63 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/02_connecting_to_the_database/index.mdx @@ -1,6 +1,12 @@ --- title: "Connecting to the Database" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/connecting_to_the_database.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/connecting_to_the_database.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/connecting_to_the_database.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/connecting_to_the_database.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx index a29f5278230..3bb9d3d5cb2 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/03_executing_sql_statements_through_statement_objects.mdx @@ -1,6 +1,12 @@ --- title: "Executing SQL Statements through Statement Objects" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_sql_statements_through_statement_objects.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/executing_sql_statements_through_statement_objects.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/executing_sql_statements_through_statement_objects.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_sql_statements_through_statement_objects.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx index f7450d9f33c..5946cd42665 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/04_retrieving_results_from_a_resultset_object.mdx @@ -1,6 +1,12 @@ --- title: "Retrieving Results from a ResultSet Object" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/retrieving_results_from_a_resultset_object.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/retrieving_results_from_a_resultset_object.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/retrieving_results_from_a_resultset_object.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/retrieving_results_from_a_resultset_object.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx index b55d0241714..ea58ec28b37 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/05_freeing_resources.mdx @@ -1,6 +1,12 @@ --- title: "Freeing Resources" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/freeing_resources.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/freeing_resources.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/freeing_resources.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/freeing_resources.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx index 9f8542ddd29..120bc5f39cc 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/06_handling_errors.mdx @@ -1,6 +1,12 @@ --- title: "Handling Errors" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/handling_errors.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/handling_errors.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/handling_errors.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/handling_errors.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx index 991f46be5c2..b970bf66231 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/05_using_the_advanced_server_jdbc_connector_with_java_applications/index.mdx @@ -1,6 +1,12 @@ --- title: "Using the Advanced Server JDBC Connector with Java applications" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_the_advanced_server_jdbc_connector_with_java_applications.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_the_advanced_server_jdbc_connector_with_java_applications.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_the_advanced_server_jdbc_connector_with_java_applications.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_the_advanced_server_jdbc_connector_with_java_applications.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/06_executing_sql_commands_with_executeUpdate().mdx b/product_docs/docs/jdbc_connector/42.2.24.1/06_executing_sql_commands_with_executeUpdate().mdx index cb309bfe9ee..2c9b2569fd0 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/06_executing_sql_commands_with_executeUpdate().mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/06_executing_sql_commands_with_executeUpdate().mdx @@ -1,6 +1,12 @@ --- title: "Executing SQL Commands with executeUpdate() or through PrepareStatement Objects" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_sql_commands_with_executeUpdate().html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/executing_sql_commands_with_executeUpdate().html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/executing_sql_commands_with_executeUpdate().html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_sql_commands_with_executeUpdate().html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/07_adding_a_graphical_interface_to_a_java_program.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/07_adding_a_graphical_interface_to_a_java_program.mdx index a3a8bbad5f7..6e8b1720882 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/07_adding_a_graphical_interface_to_a_java_program.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/07_adding_a_graphical_interface_to_a_java_program.mdx @@ -1,6 +1,12 @@ --- title: "Adding a Graphical Interface to a Java Program" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/adding_a_graphical_interface_to_a_java_program.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/adding_a_graphical_interface_to_a_java_program.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/adding_a_graphical_interface_to_a_java_program.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/adding_a_graphical_interface_to_a_java_program.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx index 9646cb5fc5b..e0290c7bb4b 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/01_reducing_client-side_resource_requirements.mdx @@ -1,6 +1,12 @@ --- title: "Reducing Client-side Resource Requirements" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/reducing_client-side_resource_requirements.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/reducing_client-side_resource_requirements.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/reducing_client-side_resource_requirements.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/reducing_client-side_resource_requirements.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx index 2a1ac916645..6ec39402d51 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/02_using_preparedstatements_to_send_sql_commands.mdx @@ -1,6 +1,12 @@ --- title: "Using PreparedStatements to Send SQL Commands" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_preparedstatements_to_send_sql_commands.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_preparedstatements_to_send_sql_commands.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_preparedstatements_to_send_sql_commands.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_preparedstatements_to_send_sql_commands.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx index 9beaf9b4844..b35b5c955d2 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/03_executing_stored_procedures.mdx @@ -1,6 +1,12 @@ --- title: "Executing Stored Procedures" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/executing_stored_procedures.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/executing_stored_procedures.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/executing_stored_procedures.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/executing_stored_procedures.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx index 78b00d93bcf..eac9a462f4f 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/04_using_ref_cursors_with_java.mdx @@ -1,6 +1,12 @@ --- title: "Using REF CURSORS with Java" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_ref_cursors_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_ref_cursors_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_ref_cursors_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_ref_cursors_with_java.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx index 809d972008f..43cf2b9e2b0 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/05_using_bytea_data_with_java.mdx @@ -1,6 +1,12 @@ --- title: "Using BYTEA Data with Java" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_bytea_data_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_bytea_data_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_bytea_data_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_bytea_data_with_java.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx index 7dfba035f2c..f8b00a19398 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/06_using_object_types_and_collections_with_java.mdx @@ -1,6 +1,12 @@ --- title: "Using Object Types and Collections with Java" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_object_types_and_collections_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_object_types_and_collections_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_object_types_and_collections_with_java.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_object_types_and_collections_with_java.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx index 89dcc58a532..ca1dfdfeb5c 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/07_asynchronous_notification_handling_with_noticelistener.mdx @@ -1,6 +1,12 @@ --- title: "Asynchronous Notification Handling with NoticeListener" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/asynchronous_notification_handling_with_noticelistener.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/asynchronous_notification_handling_with_noticelistener.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/asynchronous_notification_handling_with_noticelistener.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/asynchronous_notification_handling_with_noticelistener.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/index.mdx index 31ef32ea08d..67e081a3810 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/08_advanced_jdbc_connector_functionality/index.mdx @@ -1,6 +1,12 @@ --- title: "Advanced JDBC Connector Functionality" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_jdbc_connector_functionality.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/advanced_jdbc_connector_functionality.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/advanced_jdbc_connector_functionality.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_jdbc_connector_functionality.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx index 9674504664c..508a541ea53 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/01_configuring_the_server.mdx @@ -1,6 +1,12 @@ --- title: "Configuring the Server" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_server.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/configuring_the_server.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/configuring_the_server.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_server.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx index 343570b41ae..30f29bf6873 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/02_configuring_the_client.mdx @@ -1,6 +1,12 @@ --- title: "Configuring the Client" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/configuring_the_client.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/configuring_the_client.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/configuring_the_client.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/configuring_the_client.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx index 6e50742a54c..bbd815519a9 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/03_testing_the_ssl_jdbc_connection.mdx @@ -1,6 +1,12 @@ --- title: "Testing the SSL JDBC Connection" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/testing_the_ssl_jdbc_connection.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/testing_the_ssl_jdbc_connection.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/testing_the_ssl_jdbc_connection.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/testing_the_ssl_jdbc_connection.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx index 95a9e871c08..4a17c96fb9c 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/04_using_certificate_authentication_without_a_password.mdx @@ -1,6 +1,12 @@ --- title: "Using Certificate Authentication Without a Password" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_certificate_authentication_without_a_password.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_certificate_authentication_without_a_password.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_certificate_authentication_without_a_password.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_certificate_authentication_without_a_password.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/index.mdx index 135f4d6a9ec..17b6faefbac 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/01_using_ssl/index.mdx @@ -1,6 +1,12 @@ --- title: "Using SSL" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/using_ssl.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/using_ssl.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/using_ssl.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/using_ssl.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/02_scram_compatibility.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/02_scram_compatibility.mdx index 503e8bbbbed..dad168aaf79 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/02_scram_compatibility.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/02_scram_compatibility.mdx @@ -1,6 +1,11 @@ --- title: "Scram Compatibility" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/scram_compatibility.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/scram_compatibility.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/scram_compatibility.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx index c419244e916..6429d08c480 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/03_support_for_gssapi_encrypted_connection.mdx @@ -6,7 +6,10 @@ title: "Support for GSSAPI Encrypted Connection" -The EDB JDBC driver supports GSSAPI encrypted connections for EDB Postgres Advanced Server 12 onwards. This support is available from EDB JDBC Connector release `42.2.19.1` onwards. +!!! Tip "New Feature " + Support for GSSAPI cncrypted connections is available in EDB JDBC Connector release 42.2.19.1 and later. + +The EDB JDBC driver supports GSSAPI encrypted connections for EDB Postgres Advanced Server 12 onwards. `gssEncMode` parameter controls GSSAPI Encrypted Connection. The parameter can have any of the below four values: diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/index.mdx index 46fb10c12cc..e1a33a1ef67 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/09_security_and_encryption/index.mdx @@ -1,6 +1,11 @@ --- title: "Security and Encryption" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/security_and_encryption.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/security_and_encryption.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/security_and_encryption.html" --- PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. This requires that OpenSSL is installed on both client and server systems and that support in PostgreSQL is enabled at build time. diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/10_advanced_server_jdbc_connector_logging.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/10_advanced_server_jdbc_connector_logging.mdx index 75e2c0bf26d..3e9b02ec065 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/10_advanced_server_jdbc_connector_logging.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/10_advanced_server_jdbc_connector_logging.mdx @@ -1,6 +1,12 @@ --- title: "Advanced Server JDBC Connector Logging" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/advanced_server_jdbc_connector_logging.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/advanced_server_jdbc_connector_logging.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/advanced_server_jdbc_connector_logging.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/advanced_server_jdbc_connector_logging.html" --- The Advanced Server JDBC Connector supports the use of logging to help resolve issues with the JDBC Connector when used in your application. The JDBC Connector uses the logging APIs of `java.util.logging` that was part of Java since JDK 1.4. For information on `java.util.logging`, see [The PostgreSQL JDBC Driver](https://jdbc.postgresql.org/documentation/head/logging.html). diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/11_reference_jdbc_data_types.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/11_reference_jdbc_data_types.mdx index b9fcffe3c83..ed720ee78a5 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/11_reference_jdbc_data_types.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/11_reference_jdbc_data_types.mdx @@ -1,6 +1,12 @@ --- title: "Reference - JDBC Data Types" +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/reference_jdbc_data_types.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/reference_jdbc_data_types.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/reference_jdbc_data_types.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/reference_jdbc_data_types.html" --- diff --git a/product_docs/docs/jdbc_connector/42.2.24.1/index.mdx b/product_docs/docs/jdbc_connector/42.2.24.1/index.mdx index ff6030b98f5..fae85d33257 100644 --- a/product_docs/docs/jdbc_connector/42.2.24.1/index.mdx +++ b/product_docs/docs/jdbc_connector/42.2.24.1/index.mdx @@ -3,6 +3,28 @@ title: "EDB Postgres Advanced Server JDBC Connector Guide" directoryDefaults: description: "EDB JDBC Connector Version 42.2.12.3 Documentation and release notes." +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/index.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/conclusion.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/genindex.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.3/whats_new.html" + - "/edb-docs/p/jdbc-connector/42.2.12.3" + - "/edb-docs/p/jdbc-connector/42.2.9.1" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/genindex.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/whats_new.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/conclusion.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/index.html" + - "/edb-docs/p/jdbc-connector/42.2.8.1" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/whats_new.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/genindex.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/conclusion.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/index.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/genindex.html" + - "/edb-docs/p/jdbc-connector/42.2.12.1" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/whats_new.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/conclusion.html" + - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.12.1/index.html" --- The EDB JDBC connector provides connectivity between a Java application and an Advanced Server database. This guide provides installation instructions, usage instructions, and examples that demonstrate the Advanced Server specific functionality of the JDBC Connector. diff --git a/product_docs/docs/jdbc_connector/42.2.8.1/index.mdx b/product_docs/docs/jdbc_connector/42.2.8.1/index.mdx deleted file mode 100644 index 7c82d4549ea..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.8.1/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: EDB JDBC Connector -productStub: true -directoryDefaults: - description: "EDB JDBC Connector Version 42.2.8.1 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/p/jdbc-connector/42.2.8.1" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/whats_new.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/genindex.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/conclusion.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.8.1/index.html" ---- - - diff --git a/product_docs/docs/jdbc_connector/42.2.9.1/index.mdx b/product_docs/docs/jdbc_connector/42.2.9.1/index.mdx deleted file mode 100644 index da80d100c6d..00000000000 --- a/product_docs/docs/jdbc_connector/42.2.9.1/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: EDB JDBC Connector -productStub: true -directoryDefaults: - description: "EDB JDBC Connector Version 42.2.9.1 Documentation and release notes." - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/p/jdbc-connector/42.2.9.1" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/genindex.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/whats_new.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/conclusion.html" - - "/edb-docs/d/jdbc-connector/user-guides/jdbc-guide/42.2.9.1/index.html" ---- - - diff --git a/product_docs/docs/migration_portal/3.4.0/01_mp_release_notes/index.mdx b/product_docs/docs/migration_portal/3.4.0/01_mp_release_notes/index.mdx deleted file mode 100644 index 91d9bdec99c..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/01_mp_release_notes/index.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Release Notes" -redirects: - - ../01_whats_new/ ---- - -The Migration Portal documentation describes the latest version of Migration Portal 3.4.0 including minor releases and patches. The release notes in this section provide information on what was new in each release. For new functionality introduced in a minor or patch release, there are also indicators within the content about what release introduced the feature. - -New features, enhancements, bug fixes, and other changes in Migration Portal 3.4.0 include the following: - -| Type | Description | -| ---- |------------ | -| Feature | Added option to migrate schemas to EDB Postgres Advanced Server clusters on BigAnimal, the cloud platform powered by EDB.| -| Feature | Added repair handler to remove the `ALTER TRIGGER ENABLE` statements or transform `ALTER TRIGGER DISABLE` to EDB Postgres Advanced Server compatible syntax. (ERH-3001: ALTER_TRIGGER)| -| Feature| Added repair handler to add `AS` for EDB Postgres Advanced Server reserved keyword `CASE` when used as an alias in `CASE` Expressions. (ERH-1014: CASE_STATEMENT_ALIAS)| -| Feature| Added a Knowledge Base article to provide a workaround for type inheritance.| -| Feature| Added Knowledge Base article for Oracle's `AFTER ALTER ON SCHEMA` trigger using EDB Postgres Advanced Server's Event triggers.| -| Feature| Added Knowledge Base article for Oracle's feature in which a FUNCTION can use JAVA class using EDB Postgres Advanced Server's PL/JAVA extension. (This is applicable for EDB Postgres Advanced Server versions 10 and 11 only)| -| Enhancement | Added support for assessing larger DDL files (up to 1 GB size).| -| Enhancement | Removed the following Knowledge Base articles as Migration Portal now automatically repairs the incompatibilities associated with these: **PIPELINED functions** - Fixed by ERH-2058, **BYTE Keyword** - Fixed by ERH-2008, **Index having concatenated columns** - Fixed by ERH-1003| -| Enhancement | Enhanced the DDL extractor to find and list empty schemas.| -| Enhancement |Enhanced UI for a better user experience.| -| Enhancement | Optimized the object tree and common failure tree.| -| Enhancement| Enhanced repair handler to transform `BFILE` datatype to `TEXT` datatype in PL/SQL objects as well. (ERH-2039: BFILE_DATA_TYPE)| -| Enhancement| Enhanced repair handler to transform `PARALLEL_ENABLE` to `PARALLEL SAFE` for `PACKAGE BODY` and `FUNCTION` and remove `PARALLEL_ENABLE` keyword from `PACKAGE SPECIFICATION`. (ERH-2049: PARALLEL_ENABLE_FUNCTIONS)| -| Enhancement | DDL Extractor displays a warning message if the source Oracle version is not supported.| -|Bug Fix| Fixed 'Unknown Error' message for some complex PL/SQL objects.(RT73730, RT73910, RT73840, RT73841)| -|Bug Fix| Fixed "DDL file is required" message when file upload was canceled.| -|Bug Fix| Fixed handling of incompatible Oracle Meta Views.| -| Security Fix| Addressed security/compliance findings against possible vulnerabilities.| diff --git a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/03_mp_overview_wiki.mdx b/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/03_mp_overview_wiki.mdx deleted file mode 100644 index 5adbfce6c3d..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/03_mp_overview_wiki.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Overview of the Migration Portal wiki page" - - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-migration-portal/user-guides/user-guide/3.0.1/mp_overview_wiki.html" ---- - - - -The Portal wiki page provides quick access to: - -- What’s New information -- Quick Start guide -- Migrating schema -- Migrating data -- DDL Extractor guide -- Knowledge Base -- Repair handlers -- Migration Portal User Guide -- FAQs - -![The Migration Portal Wiki page.](../images/mp_overview_wiki.png) diff --git a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/01_mp_schema_extraction.mdx b/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/01_mp_schema_extraction.mdx deleted file mode 100644 index eca1f4dba9e..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/01_mp_schema_extraction.mdx +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: "Performing a schema extraction" - - -legacyRedirectsGenerated: - # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. - - "/edb-docs/d/edb-postgres-migration-portal/user-guides/user-guide/3.0.1/mp_schema_extraction.html" ---- - - - -## Prerequisites - -Before extracting a schema, you must download the latest EDB DDL Extractor script from the Migration Portal Projects page or from the link provided in the DDL Extractor guide in the Portal wiki. You can run the script in SQL Developer or SQL\*Plus. It uses Oracle’s `DBMS_METADATA` built-in package to extract DDLs for different objects under schemas, which you specify while running the script. The EDB DDL extractor creates the DDL file uploaded to the portal and analyzed for EDB Postgres compatibility. - -!!!Note - You must have `CONNECT` and `SELECT_CATALOG_ROLE` roles and `CREATE TABLE` privilege. - -## For SQL\*Plus - -1. Connect to SQL\*Plus and run the command: - - `SQL>@edb_ddl_extractor.sql` - -2. Provide the schema name and the path or directory in which the extractor stores the extracted DDL. When extracting multiple schemas, use a comma (`‘,’`) as a delimiter. - -!!!Note - If you want to extract all the user schemas from the current database, don't mention any schema names while extracting. However, we recommend that you mention the schema names that you want to extract. - -3. If you want to extract dependent objects from other schemas, enter `yes` or `no`. - -## On Linux - -```text -Enter a comma separated list of schemas to be extracted (Default all schemas): HR, SCOTT, FINANCE - -Location for output file (Default current location) : /home/oracle/extracted_ddls/ - -WARNING: - -Given schema(s) list may contain objects which are dependent on objects from other schema(s), not mentioned in the list.` `Assessment may fail for such objects. It is suggested to extract all dependent objects together. - -Extract dependent object from other schemas?(yes/no) (Default no / Ignored for all schemas option): yes -``` - -## On Windows - -```text -Enter comma separated list of schemas to be extracted (Default all schemas): HR, SCOTT, FINANCE - -Location for output file (Default current location) : c:\Users\Example\Desktop\ - -WARNING: - -Given schema(s) list may contain objects which are dependent on objects from other schema(s), not mentioned in the list.` `Assessment may fail for such objects. It is suggested to extract all dependent objects together. - -Extract dependent object from other schemas?(yes/no) (Default no / Ignored for all schemas option): yes -``` - -## For SQL Developers - -1. Connect to the SQL server and run the following command: - -![Enter the path for Linux or Windows.](../images/mp_schema_extraction_paths.png) - -2. Enter a comma-separated list of schemas: - -![Provide a list of schemas.](../images/mp_schema_extraction_list.png) - -3. Enter the path for the output file: - -![Specify the output file path.](../images/mp_schema_extraction_target.png) - -4. Enter **yes** or **no** to extract dependent objects: - -![Extracting dependent objects.](../images/mp_schema_dependent_objects.png) - -!!! Note - You can also enter a single schema name in both SQL\*Plus and SQL Developer. - -The script then iterates through the object types in the source database and, once the task is completed, the SQL output is stored at the location entered for the output file. - -## Additional notes - -- The EDB DDL Extractor script doesn't extract objects restored using Flashback that still have names like `BIN$b54+4XlEYwPgUAB/AQBWwA==$0`. If you want to extract these objects, you must change the name of the objects and rerun the extraction process. -- DDL Extractor extracts `nologging` tables as normal tables. Once these tables are migrated to EDB Postgres Advanced Server, `WAL` log files are created. -- DDL Extractor creates Global Temporary tables to store the schema names and their dependency information. These tables are dropped at the end of successful extraction. -- DDL Extractor script doesn't extract schemas whose name starts with `PG_` because PostgreSQL doesn't support this prefix. If you want to extract these schemas, you must change name of schema before extraction. - -## Supported object types - -The Migration Portal supports the migration of the following object types: - -- Synonyms -- DB Links -- Types and type body -- Sequences -- Tables -- Constraints -- Indexes (Except LOB indexes and indexes on materialized views) -- Views -- Materialized views -- Triggers -- Functions -- Procedures -- Packages - -!!! Note - COMMENTS on columns, tables, and materialized views are also supported. - -## Unsupported object types - -- Editions -- Operators -- Schedulers -- LOB indexes and indexes on materialized views -- XML schemas -- Profiles -- Role and object grants -- Tablespaces -- Directories -- Users -- RLS policy -- Queues - -## Oracle system schemas - -EDB DDL Extractor script ignores the following system schemas while extracting from Oracle: - -| | | | -| --------------------- | --------------------- | ------------------ | -| ANONYMOUS | APEX_PUBLIC_USER | APEX_030200 | -| APEX_040000 | APEX_040000 | APPQOSSYS | -| AUDSYS | BI | CTXSYS | -| DMSYS | DBSNMP | DIP | -| DVF | DVSYS | EXFSYS | -| FLOWS_FILES | FLOWS_020100 | GSMADMIN_INTERNAL | -| GSMCATUSER | GSMUSER | IX | -| LBACSYS | MDDATA | MDSYS | -| MGMT_VIEW | OE | OJVMSYS | -| OLAPSYS | ORDPLUGINS | ORDSYS | -| ORDDATA | OUTLN | ORACLE_OCM | -| OWBSYS | OWBYSS_AUDIT | PM | -| RMAN | SH | SI_INFORMTN_SCHEMA | -| SPATIAL_CSW_ADMIN_USR | SPATIAL_WFS_ADMIN_USR | SYS | -| SYSBACKUP | SYSDG | SYSKM | -| SYSTEM SYSMAN | TSMSYS WKPROXY | WKSYS | -| WK_TEST XS$NULL | WMSYS | XDB | diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_enterprisedb_website.png b/product_docs/docs/migration_portal/3.4.0/images/mp_enterprisedb_website.png deleted file mode 100644 index 708f57790b7..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_enterprisedb_website.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:75af20d6c708d7a2c929afe562344a13273f2face2112d2c90179c7881a42857 -size 292870 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_home.png b/product_docs/docs/migration_portal/3.4.0/images/mp_overview_home.png deleted file mode 100644 index 86e2a03ddd2..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_home.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e855561005abd011155573190ead85e2d3c0eeb226434ce44a6eec7df1e63c59 -size 190911 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_errors.png b/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_errors.png deleted file mode 100644 index 04285c2943a..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_errors.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45dd9336edd642be23387005fe7a218d06fdc01da6000df3aee689e135c02309 -size 217587 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_incompatible.png b/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_incompatible.png deleted file mode 100644 index 333282e5880..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_incompatible.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ad683e872fc8c093e2218257b12c45d842ac9459572ed7b95ca8760210a5c0c -size 166629 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_workaround.png b/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_workaround.png deleted file mode 100644 index b838cc2fe10..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_workaround.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d34ba78cb672310d8b72d926053f0c806e86abe0086776667b72549ffa071f58 -size 166426 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_using_portal.png b/product_docs/docs/migration_portal/3.4.0/images/mp_using_portal.png deleted file mode 100755 index 6491267a0b5..00000000000 --- a/product_docs/docs/migration_portal/3.4.0/images/mp_using_portal.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c86bb27061e5a3ff71a2e275d16227afa455fd26f7c8a07dd589115a2d977f7 -size 150849 diff --git a/product_docs/docs/migration_portal/3.5.0/01_mp_release_notes/index.mdx b/product_docs/docs/migration_portal/3.5.0/01_mp_release_notes/index.mdx new file mode 100644 index 00000000000..d3975ac5283 --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/01_mp_release_notes/index.mdx @@ -0,0 +1,18 @@ +--- +title: "Release Notes" +redirects: + - ../01_whats_new/ +--- + +The Migration Portal documentation describes the latest version of Migration Portal. + +New features, enhancements, bug fixes, and other changes in Migration Portal 3.5.0 include the following: + +| Type | Description | +| ---- |------------ | +| Enhancement | Migration Portal is now certified to support migrations to EDB Postgres Advanced Server 14. | +| Enhancement | Migration Portal now uses the metadata information in a SQL dump file to assess the extracted schemas. You no longer have to download the DDL extractor script to extract DDLs for your schemas. | +| Feature| Updated repair handler to remove OVERFLOW syntax from CREATE TABLE syntax to make it compatible with EDB Postgres Advanced Server compatible syntax. (ERH-2011: ORGANIZATION_INDEX_COMPRESS).| +| Feature| Added a repair handler to remove the NAME clause and associated label name from SET TRANSACTION statements. (ERH-3002: SET_TRANSACTION).| +| Enhancement | Improved the user interface for a better user experience. | + diff --git a/product_docs/docs/migration_portal/3.4.0/02_supported_platforms.mdx b/product_docs/docs/migration_portal/3.5.0/02_supported_platforms.mdx similarity index 66% rename from product_docs/docs/migration_portal/3.4.0/02_supported_platforms.mdx rename to product_docs/docs/migration_portal/3.5.0/02_supported_platforms.mdx index cd01e4ce096..7b076565e8a 100644 --- a/product_docs/docs/migration_portal/3.4.0/02_supported_platforms.mdx +++ b/product_docs/docs/migration_portal/3.5.0/02_supported_platforms.mdx @@ -6,7 +6,7 @@ title: "Supported platforms" -The Migration Portal supports assessment and migration from Oracle 11g, 12c, 18c, and 19c to EDB Postgres Advanced Server 10, 11, 12, or 13. Migration Portal is supported on the following browsers and operating systems. +The Migration Portal supports assessment and migration from Oracle 11g, 12c, 18c, and 19c to EDB Postgres Advanced Server 10, 11, 12, 13, or 14. Migration Portal is supported on the following browsers. ## Supported browsers @@ -18,11 +18,3 @@ For the best user experience, we recommend using the Google Chrome browser. Migr | Google Chrome | 68 and above | | Microsoft Edge | 42 and above | | Mozilla Firefox | 60 and above | - -## Supported operating systems - -| **Operating systems** | **Supported version** | -| --------------------- | --------------------- | -| Macintosh | OS X Sierra | -| Windows | 10 | -| Linux | CentOS 7 | diff --git a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/01_mp_overview_home.mdx b/product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/01_mp_overview_home.mdx similarity index 87% rename from product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/01_mp_overview_home.mdx rename to product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/01_mp_overview_home.mdx index 1a478f0e44b..3230e76e792 100644 --- a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/01_mp_overview_home.mdx +++ b/product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/01_mp_overview_home.mdx @@ -19,9 +19,6 @@ The Migration Portal home page allows access to the following Migration Portal f - **Create project**: Select **+ New** to create a project. -!!!Note - Uploading large DDL files might freeze or crash the browser (depending on the browser and the system resources in use). In this scenario, try running Migration Portal in a different browser or extracting fewer schemas and uploading that file on Migration Portal. - - **Search projects**: Use the **Search** box to search for projects. - **Overview**: The Overview panel provides details about the selected project and displays the compatibility percentage after schema assessment. diff --git a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/02_mp_overview_project.mdx b/product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/02_mp_overview_project.mdx similarity index 91% rename from product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/02_mp_overview_project.mdx rename to product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/02_mp_overview_project.mdx index c7a6d0e9379..0de8e422a08 100644 --- a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/02_mp_overview_project.mdx +++ b/product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/02_mp_overview_project.mdx @@ -11,7 +11,7 @@ legacyRedirectsGenerated: The Migration Portal Projects page provides detailed information about your migration. -![The Migration Portal Projects Page overview.](../images/mp_overview_project_numbered.png) +![The Migration Portal Projects Page overview.](../images/mp_overview_home.png) Use the following resources to gather information about your migration projects: @@ -29,8 +29,7 @@ Use the following resources to gather information about your migration projects: - **Common Failures**: Displays the reason for the failed objects for the selected schemas. - ![Common Failures tab](../images/mp_whats_new_common_failures.png) - + !!! Note You can download a `.csv` file for the common failures for the project. - **Schema**: Displays the result of the assessment. @@ -40,5 +39,3 @@ Use the following resources to gather information about your migration projects: - **Quick help**: The Quick help panel displays links to Knowledge Base articles and repair handler documentation. - **Search**: Use the **Search** box to search the Knowledge Base entries or repair handler documentation for specific information. - -![Searching the Knowledge Base entry.](../images/mp_overview_project_kb.png) diff --git a/product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/index.mdx b/product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/index.mdx similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/03_mp_using_portal/index.mdx rename to product_docs/docs/migration_portal/3.5.0/03_mp_using_portal/index.mdx diff --git a/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/01_mp_schema_extraction.mdx b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/01_mp_schema_extraction.mdx new file mode 100644 index 00000000000..a4c640380d4 --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/01_mp_schema_extraction.mdx @@ -0,0 +1,210 @@ +--- +title: "Performing a schema extraction" + + +legacyRedirectsGenerated: + # This list is generated by a script. If you need add entries, use the `legacyRedirects` key. + - "/edb-docs/d/edb-postgres-migration-portal/user-guides/user-guide/3.0.1/mp_schema_extraction.html" +--- + + + +You can use the Oracle’s Data Pump utility to extract metadata from your Oracle database to an SQL dump file. Migration Portal requires this file to be uploaded to assess the extracted schemas. + + +!!! Note + Migration Portal might become unresponsive for very large SQL files, depending on your system’s and browser’s resource availability. Migration Portal supports SQL files up to 1 GB. If your SQL file size exceeds 1 GB, extract fewer schemas at a time to reduce the SQL file size. + +## Extracting schemas to an SQL dump file + +Note that Migration Portal only requires the metadata in the SQL dump file to assess the extracted schemas. + + +#### Prerequisites + +* If you plan on exporting schemas that are not your own, ensure that you are assigned the `DATAPUMP_IMP_FULL_DATABASE` role. Otherwise, you can only export your own schema. + +* Ensure that you have sufficient tablespace quota to create objects in the tablespace. + +Perform either of the following procedures: + +* [To extract one or more schemas in a database](#to-extract-one-or-more-schemas-in-a-database) + +* [To extract all schemas in a database](#to-extract-all-schemas-in-a-database) + +### To extract one or more schemas in a database + +1. In SQL*Plus, create a directory object that points to a directory on your server file system. For example: + + **On Linux**: + + `SQL> create directory DMPDIR as '/sample/file/path';` + + **On Windows**: + + `SQL> create directory DMPDIR as 'c:\sample\file\path\';` + +2. Grant read, write permissions to the user running the Data Pump utility. + + `SQL> grant read,write on directory DMPDIR to ;` + +3. Before running the `expdp` command, create a file with a `.par` extension (for example, parameters.par) on your server. Add attributes and values to the file, as follows: + + ``` + $ cat parameters.par + + CONTENT=metadata_only + + INCLUDE=SYNONYM,SEQUENCE,TYPE,TABLE,CONSTRAINT,PROCEDURE,FUNCTION,PACKAGE,INDEX,MATERIALIZED_VIEW,VIEW,TRIGGER,DB_LINK + + ``` +The attributes and values in the above command specify the following options: + + `CONTENT=metadata_only` extracts only the metadata of the schemas. + + `INCLUDE=` specifies which database object types to include in the extraction. Append a comma-separated list of the [Supported object types](#supported-object-types) to only extract database object types that are supported by Migration Portal. + + +4. From the command line, run the export command to generate a **db.dump** file. For example, to extract metadata information for ``, ``, ``, and so on, run: + + ``` + $ expdp @ DIRECTORY=DMPDIR SCHEMAS=,, DUMPFILE=db.dump parfile=parameters.par + ``` + +5. To generate a SQL file from the dump file, run the import command. + + For example, to generate **YourSchemas.SQL** file from the db.dump file, enter: + + ``` + $ impdp @ DIRECTORY= TRANSFORM=OID:n SQLFILE=YourSchemas.sql DUMPFILE=db.dump + ``` + +### To extract all schemas in a database + +!!! Note + Do not perform the following procedure from a user account that belongs to the excluded schemas list, see [Unsupported schemas](#unsupported-schemas). The impdp command fails if the user account running the command is in the excluded list of schemas. + + +1. In SQL*Plus, create a directory object that points to a directory on your server file system. For example: + + **On Linux**: + + `SQL> create directory DMPDIR as '/sample/file/path';` + + **On Windows**: + + `SQL> create directory DMPDIR as 'c:\sample\file\path\';` + +2. Grant read, write permissions to the user running the Data Pump utility. + + `SQL> grant read,write on directory DMPDIR to ;` + +3. Before running the expdp command, create a file with a `.par` extension (for example, parameters1.par) on your server. Add attributes and values to the file, as follows: + + ``` + $ cat parameters1.par + + CONTENT=metadata_only + + FULL=Y + + INCLUDE=SYNONYM,SEQUENCE,TYPE,TABLE,CONSTRAINT,PROCEDURE,FUNCTION,PACKAGE,INDEX,MATERIALIZED_VIEW,VIEW,TRIGGER,DB_LINK + + ``` +The attributes and values in the above command specify the following options: + + `CONTENT=metadata_only` extracts only the metadata of the schemas. + + `INCLUDE=` specifies which database object types to include in the extraction. Append a comma-separated list of the [Supported object types](#supported-object-types) to only extract database object types that are supported by Migration Portal. + + `FULL=Y` extracts all schemas in the database. + + +4. From the command line, run the export command to generate a **db.dump** file, as follows: + + ``` + $ expdp @ DIRECTORY=DMPDIR DUMPFILE=db.dump parfile=parameters1.par + ``` + +5. Before running the impdp command, create a parameter file with a `.par` extension (for example, parameters2.par) on your server. Add attributes and values to the file, as follows: + + ``` + $ cat parameters2.par + + EXCLUDE=SCHEMA:"IN(select username as schema_name from sys.dba_users where LOWER(username) LIKE 'pg_%' OR username IN + ('ANONYMOUS','APEX_PUBLIC_USER','APEX_030200','APEX_040000','APEX_040200','APPQOSSYS','AUDSYS','CTXSYS','DMSYS','DBSNMP', + 'DBSFWUSER','DEMO','DIP','DMSYS', 'DVF','DVSYS','EXFSYS','FLOWS_FILES','FLOWS_020100', 'FRANCK','GGSYS','GSMADMIN_INTERNAL', + 'GSMCATUSER','GSMROOTUSER','GSMUSER','LBACSYS','MDDATA','MDSYS','MGMT_VIEW','OJVMSYS','OLAPSYS','ORDPLUGINS','ORDSYS', + 'ORDDATA','OUTLN','ORACLE_OCM','OWBSYS','OWBYSS_AUDIT','PDBADMIN','RMAN','REMOTE_SCHEDULER_AGENT','SI_INFORMTN_SCHEMA', + 'SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SQLTXADMIN','SQLTXPLAIN','SYS$UMF','SYS','SYSBACKUP','SYSDG','SYSKM', + 'SYSRAC','SYSTEM','SYSMAN','TSMSYS','WKPROXY','WKSYS','WK_TEST','WMSYS','XDB','XS$NULL'))" + ``` + The attributes and values in the above command specify the following options: + + `EXCLUDE` specifies which schemas to exclude. Append a list of the [Unsupported schemas](#unsupported-schemas) to ensure that the Data Pump utility *does not* extract any system schemas (including schemas beginning with **pg_**). + +6. To generate a SQL file from the dump file, run the import command. + + For example, to generate **YourSchemas.SQL** file from the db.dump file, enter: + + ``` + $ impdp @ DIRECTORY= TRANSFORM=OID:n SQLFILE=YourSchemas.sql DUMPFILE=db.dump + ``` + + +## Schemas and objects support + +See the following sections for supported and unsupported schemas and objects. + +### Unsupported schemas + +See the following table for a list of Oracle systems schemas you must exclude while generating the SQL dump file. + +| | | | | | +| :-------------------- | :------------------ | :---------------- | :----------------- | :---------------------- | +| ANONYMOUS | APEX_PUBLIC_USER | APEX_030200 | APEX_040000 | APEX_040200 | +| APPQOSSYS | AUDSYS | CTXSYS | DMSYS | DBSNMP | +| DBSFWUSER | DEMO | DIP | DMSYS | DVF | +| DVSYS | EXFSYS | FLOWS_FILES | FLOWS_020100 | FRANCK | +| GGSYS | GSMADMIN_INTERNAL | GSMCATUSER | GSMROOTUSER | GSMUSER | +| LBACSYS | MDDATA | MDSYS | MGMT_VIEW | OJVMSYS | +| OLAPSYS | ORDPLUGINS | ORDSYS | ORDDATA | OUTLN | +| ORACLE_OCM | OWBSYS | OWBYSS_AUDIT | PDBADMIN | RMAN | +| REMOTE_SCHEDULER_AGENT | SI_INFORMTN_SCHEMA | SPATIAL_CSW_ADMIN_USR | SPATIAL_WFS_ADMIN_USR | SQLTXADMIN | +| SQLTXPLAIN | SYS$UMF | SYS | SYSBACKUP | SYSDG | +| SYSKM | SYSRAC | SYSTEM | SYSMAN | TSMSYS | +| WKPROXY | WKSYS | WK_TEST | WMSYS | XDB | +| XS$NULL | | + +!!! Note + EDB Postgres Advanced Server does not support schema names starting with **pg_**, which should also be excluded while extracting from Oracle. + +### Supported object types + +The Migration Portal supports the migration of the following object types: + +- Synonyms +- DB Links +- Types and type body +- Sequences +- Tables +- Constraints +- Indexes (Except LOB indexes and indexes on materialized views) +- Views +- Materialized views +- Triggers +- Functions +- Procedures +- Packages + +!!! Note + COMMENTS on columns, tables, and materialized views are also supported. + +### Unsupported object types + +- Editions +- Operators +- Schedulers +- LOB indexes and indexes on materialized views +- XML schemas +- Profiles +- Role and object grants +- Tablespaces +- Directories +- Users +- RLS policy +- Queues \ No newline at end of file diff --git a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/02_mp_schema_assessment.mdx b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/02_mp_schema_assessment.mdx similarity index 74% rename from product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/02_mp_schema_assessment.mdx rename to product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/02_mp_schema_assessment.mdx index dd8e934d2c7..d2beb6ffae3 100644 --- a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/02_mp_schema_assessment.mdx +++ b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/02_mp_schema_assessment.mdx @@ -19,7 +19,7 @@ You can assess an Oracle database schema for compatibility with EDB Postgres Adv 3. Select `New` to create a project. -![The Migration Portal New project dialog.](../images/mp_schema_assessment_new_project_edited.png) + ![The Migration Portal New project dialog.](../images/mp_schema_assessment_new_project_edited.png) 4. In the dialog box, enter the project name in the **Project name** field. @@ -29,25 +29,21 @@ You can assess an Oracle database schema for compatibility with EDB Postgres Adv - Select a source DB and version for the source. - Select the target DB and Version for the target. -6. To upload the .SQL file generated by the latest EDB DDL Extractor for Oracle Database, select **Choose file**. +6. To upload the .SQL file generated by the Data Pump utility, select **Choose file**. !!! Note - Don't modify the `.SQL` file. - - You can upload only the `.SQL` file generated by the latest EDB DDL Extractor. - For more information, see [Schema extraction](01_mp_schema_extraction/#mp_schema_extraction). 7. To specify an index prefix (`idx`) when creating a project, select the **Add Index Prefix** box. This selection ensures better assessment results, as EDB Postgres Advanced Server doesn't support the same name for tables and indexes. 8. Select **Create & assess** to create a new project and to assess the schemas. - ![The Schema analysis result.](../images/mp_schema_assessment_analysis_result.png) + The analysis tool reviews every construct and executes repair actions to improve compatibility with EDB Postgres Advanced Server. It flags any remaining errors that require manual intervention. - The analysis tool reviews every construct and executes repair actions to improve compatibility with EDB Postgres Advanced Server. It flags any remaining errors that require manual intervention. 9. Verify the DDL objects (e.g., TABLES) that don't show a 100% success ratio. -![Verifying the DDL objects.](../images/mp_schema_assessment_verifying_ddl.png) 10. Select the objects that aren't compatible with EDB Postgres Advanced Server and view the details. At the bottom of the middle panel, you can view repair action details. @@ -55,18 +51,18 @@ You can assess an Oracle database schema for compatibility with EDB Postgres Adv 11. Refer to the Knowledge Base information in the right panel to locate the possible workarounds for the objects that aren't immediately compatible with EDB Postgres Advanced Server. You can also view the Knowledge Base information on the Portal wiki page. -![Assessment result with errors.](../images/mp_schema_assessment_errors.png) +![Incompatible objects are identified.](../images/mp_schema_assessment_errors.png) 12. On the **Knowledge Base** tab, you can enter the error message for the incompatible objects with EDB Postgres Advanced Server and select **Search**. The object detail panel displays the workaround or the resolution for the failed object. You can manually make the changes on the **Assessment** tab for that object and select **Reassess**. -!!! Note + !!! Note If any failed object passes while reassessing, the dependent objects for that object are also reassessed. -![Workaround or resolution for incompatible objects.](../images/mp_schema_assessment_workaround.png) + Similarly, you can make all incompatible objects compatible. -Similarly, you can make all incompatible objects compatible. +![Workaround or resolution for incompatible objects.](../images/mp_schema_assessment_workaround.png) !!! Note If the information or workaround for incompatible objects isn't available in the Knowledge Base, contact the support team for help. @@ -79,16 +75,10 @@ When you have finished working with the DDL, you can either download the modifie Migration Portal reports provides a high-level assessment summary of the schemas assessed for your project. In addition, the report provides details about the failed objects and the cause of failure. -![Select schemas for reports.](../images/mp_schema_assessment_select_schema.png) - 1. Select **Report**. 2. Select the schemas to include in the report. 3. To generate the onscreen report, select **Generate**. -![The Schema Assessment Report.](../images/mp_schema_assessment_schema_report.png) - You can optionally select **Generate PDF** to save the report in PDF format. You can also view the count of distinct repair handlers applied to the DDLs under the selected schemas. - -![The saved pdf report.](../images/mp_schema_assessment_schema_report_pdf.png) diff --git a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/03_mp_schema_migration.mdx b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/03_mp_schema_migration.mdx similarity index 53% rename from product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/03_mp_schema_migration.mdx rename to product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/03_mp_schema_migration.mdx index ac73e08b2d8..cf42fd9497f 100644 --- a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/03_mp_schema_migration.mdx +++ b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/03_mp_schema_migration.mdx @@ -17,8 +17,6 @@ You can migrate to any of these schemas: - New on-premises EDB Postgres Advanced Server - EDB Postgres Advanced Server in the cloud -![Schema migration home page](../images/mp_schema_migration_home.png) - ## Migrating to an existing on-premises EDB Postgres Advanced Server host @@ -29,27 +27,20 @@ You can migrate schemas to an existing on-premises EDB Postgres Advanced Server 1. Select **Existing on-premises EDB Postgres Postgres Advanced Server**. -![Existing on-premises EDB Postgres Advanced Server home page](../images/mp_schema_migration_existing_epas.png) 2. Select one or more schemas to migrate to EDB Postgres Advanced Server. -![Selecting schemas for migration](../images/mp_schema_mig_exist_epas_schemas_selection.png) - + !!! Note + If your schemas aren't 100% compatible, a banner appears. Complete the Contact Us form as needed. -!!!Note - If your schemas aren't 100% compatible, a banner appears. Complete the Contact Us form as needed. - -![The Contact Us form](../images/mp_schema_mig_exist_epas_contact_us.png) 3. To download the assessed schemas, select **Download SQL file**. -![Download the assessed schemas](../images/mp_schema_mig_exist_epas_download.png) 4. Select **Windows**. -![Selecting Windows operating system](../images/mp_schema_mig_exist_epas_windows.png) -5. To import the schemas, run the following command: +5. To import the schemas, run: - On CLI: @@ -63,32 +54,27 @@ You can migrate schemas to an existing on-premises EDB Postgres Advanced Server edb-psql -f .sql ``` -!!!Note + !!! Note You can alternatively use the `pgAdmin` client for the import. The converted schemas migrate to the target server. -![A successful migration](../images/mp_schema_mig_exist_epas_mig_success.png) ### Migrate schemas on Linux You can migrate schemas to an existing on-premises EDB Postgres Advanced Server on Linux. -1. Select `Existing on-premises EDB Postgres Advanced Server`. +1. Select **Existing on-premises EDB Postgres Advanced Server**. -![Existing on-premises EDB Postgres Advanced Server home page](../images/mp_schema_migration_existing_epas.png) 2. Select one or more schemas to migrate to EDB Postgres Advanced Server. -![Selecting schemas for migration](../images/mp_schema_mig_exist_epas_schemas_selection_linux.png) 3. To download the assessed schemas, select **Download SQL file**. -![Download the assessed schemas](../images/mp_schema_mig_exist_epas_download.png) 4. Select **Linux**. -![Selecting Linux operating system](../images/mp_schema_mig_exist_linux.png) 5. To import the schemas, invoke the following `edb-psql` client commands: @@ -100,13 +86,11 @@ You can migrate schemas to an existing on-premises EDB Postgres Advanced Server \\i .sql ``` -!!!Note + !!! Note You can alternatively use the `pgAdmin` client for the import. The converted schemas migrate to the target server. -![A successful schema migration](../images/mp_schema_mig_exist_epas_mig_success.png) - ## Migrating to a new on-premises EDB Postgres Advanced Server installation @@ -119,29 +103,23 @@ Migrate schemas to a new on-premises EDB Postgres Advanced Server on Windows. 1. Select **New on-premises EDB Postgres Postgres Advanced Server**. -![New on-premises EDB Postgres Advanced Server home page](../images/mp_schema_migration_home_new.png) 2. Select one or more schemas to migrate on EDB Postgres Advanced Server. -![Selecting schemas for migration](../images/mp_schema_mig_new_epas_schemas_selection.png) 3. For the operating system, select **Windows**. -![Selecting Windows operating system](../images/mp_schema_mig_new_epas_windows.png) 4. Select **Download Windows installer**. -![Downloading Windows installer](../images/mp_schema_mig_new_epas_windows_installer.png) 5. For installation steps, select **EDB Postgres Advanced Server Installation Guide for Windows**. -![View Windows installation guide](../images/mp_schema_mig_new_epas_windows_guide.png) 6. To download the assessed schemas, select **Download SQL file**. -![Downloading the assessed file](../images/mp_schema_mig_new_epas_download.png) -7. You can import schemas by running the following command: +7. You can import schemas by running: - On CLI @@ -155,8 +133,7 @@ Migrate schemas to a new on-premises EDB Postgres Advanced Server on Windows. edb-psql -f .sql ``` - -!!! Note + !!! Note You can alternatively use the `pgAdmin` client for the import. @@ -166,32 +143,24 @@ Migrate schemas to an on-premises EDB Postgres Advanced Server on Linux. 1. Select **New On-premises EDB Postgres Advanced Server**. -![Migrating schemas home page](../images/mp_schema_migration_home_new.png) 2. Select one or more schemas to migrate on EDB Postgres Advanced Server. -![Selecting schemas for migration](../images/mp_schema_mig_new_epas_schemas_selection.png) - -3. For the operating system, select the Linux. +3. For the operating system, select **Linux**. -![Selecting Linux operating system](../images/mp_schema_mig_new_epas_linux.png) 4. You can select one of the following options to install the EDB Postgres Advanced Server: - Repository - More options - ![Selecting Linux repository](../images/mp_schema_mig_new_epas_linux_repo.png) - -5. For information on the installation procedure, select `EDB Postgres Advanced Server Installation Guide` for Linux. +5. For information on the installation procedure, select **EDB Postgres Advanced Server Installation Guide** for Linux. -![Selecting Linux installation guide](../images/mp_schema_mig_new_epas_linux_guide.png) 6. To download the assessed schemas, select **Download SQL file**. -![Downloading the assessed schemas](../images/mp_schema_mig_new_epas_download.png) -7. To import the schemas, run the following command: +7. To import the schemas, run: ```text sudo su - enterprisedb @@ -201,53 +170,41 @@ Migrate schemas to an on-premises EDB Postgres Advanced Server on Linux. \i .sql ``` -![Importing schemas into EDB Postgres Advanced Server](../images/mp_schema_mig_new_epas_linux_import.png) - -!!! Note + !!! Note You can alternatively use the `pgAdmin` client for the import. The converted schemas migrate to the target server. -![A successful schema migration](../images/mp_schema_mig_new_epas_mig_success.png) ## Migrate to the cloud Migrate schemas on EDB Postgres Advanced Server to the cloud. -2. Select **EDB Postgres Advanced Server on Cloud**. - -![EDB Postgres Advanced Server on Cloud](../images/mp_schema_migration_home_cloud.png) - -3. Select one or more schemas to migrate to EDB Postgres Advanced Server. +1. Select **EDB Postgres Advanced Server on Cloud**. -![Selecting schemas for migration](../images/mp_schema_mig_cloud_epas_schemas_selection.png) -4. Select the cloud platform, for example, **BigAnimal**. - -![Selecting cloud option for migration](../images/migrate_cloud_select_platform_updated.png) +2. Select one or more schemas to migrate to EDB Postgres Advanced Server. -5. To launch a new cluster, select **Go to BigAnimal**. +3. Select the cloud platform, for example, **BigAnimal**. -![Launching a cloud cluster](../images/mp_migrate_cloud_launch_cluster_updated.png) -Or, if you have an existing cluster running, select `Next`. +4. To launch a new cluster, select **Go to BigAnimal**. + + Or, if you have an existing cluster running, select **Next**. -!!! Note + !!! Note See the [Big Animal](https://www.enterprisedb.com/edb-cloud) page for more information. -6. Enter the required connection details on the `Connect` page. +5. Enter the required connection details on the `Connect` page. -![Connecting to the cloud cluster](../images/mp_migrate_cloud_connection_updated.png) + ![Connecting to the cloud cluster](../images/mp_migrate_cloud_connection_updated.png) 7. To verify the connection details, select **Test Connection**. -!!!Note + !!! Note You can select **Edit Connection** to make changes to the connection details and retest the connection details. -![Verify the connection details](../images/mp_migrate_cloud_connection_complete_updatated.png) - 8. Once the connection is successful, select **Next**. -![A successful migration](../images/mp_migrate_cloud_success_updated.png) The converted schemas migrate to the target server. diff --git a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/04_mp_data_migration.mdx b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/04_mp_data_migration.mdx similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/04_mp_data_migration.mdx rename to product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/04_mp_data_migration.mdx diff --git a/product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/index.mdx b/product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/index.mdx similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/04_mp_migrating_database/index.mdx rename to product_docs/docs/migration_portal/3.5.0/04_mp_migrating_database/index.mdx diff --git a/product_docs/docs/migration_portal/3.4.0/05_mp_advanced_data_migration.mdx b/product_docs/docs/migration_portal/3.5.0/05_mp_advanced_data_migration.mdx similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/05_mp_advanced_data_migration.mdx rename to product_docs/docs/migration_portal/3.5.0/05_mp_advanced_data_migration.mdx diff --git a/product_docs/docs/migration_portal/3.4.0/images/1.png b/product_docs/docs/migration_portal/3.5.0/images/1.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/1.png rename to product_docs/docs/migration_portal/3.5.0/images/1.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/162980660731198462.textClipping b/product_docs/docs/migration_portal/3.5.0/images/162980660731198462.textClipping similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/162980660731198462.textClipping rename to product_docs/docs/migration_portal/3.5.0/images/162980660731198462.textClipping diff --git a/product_docs/docs/migration_portal/3.4.0/images/3.png b/product_docs/docs/migration_portal/3.5.0/images/3.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/3.png rename to product_docs/docs/migration_portal/3.5.0/images/3.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/EDB_logo.png b/product_docs/docs/migration_portal/3.5.0/images/EDB_logo.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/EDB_logo.png rename to product_docs/docs/migration_portal/3.5.0/images/EDB_logo.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/Migrate_Cloud_Finish.png b/product_docs/docs/migration_portal/3.5.0/images/Migrate_Cloud_Finish.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/Migrate_Cloud_Finish.png rename to product_docs/docs/migration_portal/3.5.0/images/Migrate_Cloud_Finish.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/biganimal.png b/product_docs/docs/migration_portal/3.5.0/images/biganimal.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/biganimal.png rename to product_docs/docs/migration_portal/3.5.0/images/biganimal.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/edb_logo.svg b/product_docs/docs/migration_portal/3.5.0/images/edb_logo.svg similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/edb_logo.svg rename to product_docs/docs/migration_portal/3.5.0/images/edb_logo.svg diff --git a/product_docs/docs/migration_portal/3.4.0/images/edb_logo_full_color.svg b/product_docs/docs/migration_portal/3.5.0/images/edb_logo_full_color.svg similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/edb_logo_full_color.svg rename to product_docs/docs/migration_portal/3.5.0/images/edb_logo_full_color.svg diff --git a/product_docs/docs/migration_portal/3.4.0/images/migrate_cloud_select_platform_updated.png b/product_docs/docs/migration_portal/3.5.0/images/migrate_cloud_select_platform_updated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/migrate_cloud_select_platform_updated.png rename to product_docs/docs/migration_portal/3.5.0/images/migrate_cloud_select_platform_updated.png diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_enterprisedb_website.png b/product_docs/docs/migration_portal/3.5.0/images/mp_enterprisedb_website.png new file mode 100644 index 00000000000..0210ec21b61 --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_enterprisedb_website.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07c40007b2fd732a626193a92c30cb2db555c1c4fbaca4978e0735d0f2c77a17 +size 63459 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_complete.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_complete.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_complete.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_complete.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_complete_updatated.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_complete_updatated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_complete_updatated.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_complete_updatated.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_updated.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_updated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_connection_updated.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_connection_updated.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_finish_1.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_finish_1.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_finish_1.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_finish_1.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_launch_cluster_updated.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_launch_cluster_updated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_launch_cluster_updated.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_launch_cluster_updated.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_select_platform.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_select_platform.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_select_platform.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_select_platform.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_success_updated.png b/product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_success_updated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_migrate_cloud_success_updated.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_migrate_cloud_success_updated.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_new_filters.png b/product_docs/docs/migration_portal/3.5.0/images/mp_new_filters.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_new_filters.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_new_filters.png diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_overview_home.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_home.png new file mode 100644 index 00000000000..f4138cea617 --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_home.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bcd23061d117ced216d8b2d84fa94bd84b88c4e8e844b064eae642a2a1a4cc6 +size 140945 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_home_updated.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_home_updated.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_home_updated.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_home_updated.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_project_kb.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_project_kb.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_project_kb.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_project_kb.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_project_numbered.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_project_numbered.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_project_numbered.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_project_numbered.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_1.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_1.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_1.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_1.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_2.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_2.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_2.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_2.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_5.png b/product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_5.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_overview_wiki_5.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_overview_wiki_5.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_analysis_result.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_analysis_result.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_analysis_result.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_analysis_result.png diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_errors.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_errors.png new file mode 100644 index 00000000000..1a9d4c4230c --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_errors.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c4e5f33a6656db25d02665f61b75648e294d1db49683f7487248bc443f9e2a6 +size 216545 diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_incompatible.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_incompatible.png new file mode 100644 index 00000000000..09c5fe38db1 --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_incompatible.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90fb5884bb6d71da06cebccdff830b3ffbe4318d20837fbd50132eb19b3d0599 +size 215692 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_1.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_1.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_1.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_1.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_2.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_2.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_2.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_2.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_4.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_4.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_4.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_4.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_4_edited.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_4_edited.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_4_edited.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_4_edited.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_5.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_5.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_5.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_5.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_edited.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_edited.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_new_project_edited.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_new_project_edited.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_schema_report.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_schema_report.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_schema_report.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_schema_report.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_schema_report_pdf.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_schema_report_pdf.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_schema_report_pdf.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_schema_report_pdf.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_select_schema.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_select_schema.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_select_schema.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_select_schema.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_verifying_ddl.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_verifying_ddl.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_assessment_verifying_ddl.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_verifying_ddl.png diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_workaround.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_workaround.png new file mode 100644 index 00000000000..c5d186146cb --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_assessment_workaround.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26cddaba757a3267c6cea02eaa8a54bb62a2da657e2ad2cdcc9897119c320f0a +size 202585 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_dependent_objects.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_dependent_objects.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_dependent_objects.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_dependent_objects.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_list.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_list.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_list.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_list.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_paths.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_paths.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_paths.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_paths.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_target.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_target.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_extraction_target.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_extraction_target.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster_connection_page.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster_connection_page.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster_connection_page.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster_connection_page.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster_connection_test.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster_connection_test.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_cluster_connection_test.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_cluster_connection_test.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_epas_mig_success.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_epas_mig_success.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_epas_mig_success.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_epas_mig_success.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_epas_schemas_selection.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_epas_schemas_selection.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_epas_schemas_selection.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_option.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_option.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_cloud_option.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_cloud_option.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_contact_us.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_contact_us.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_contact_us.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_contact_us.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_download.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_download.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_download.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_download.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_mig_success.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_mig_success.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_mig_success.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_mig_success.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_schemas_selection.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_schemas_selection.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_schemas_selection.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_schemas_selection_linux.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_schemas_selection_linux.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_schemas_selection_linux.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_schemas_selection_linux.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_windows.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_windows.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_epas_windows.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_epas_windows.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_linux.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_linux.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_exist_linux.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_exist_linux.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_download.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_download.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_download.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_download.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_import.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_import.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_import.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_import.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_guide.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_guide.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_guide.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_guide.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_import.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_import.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_import.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_import.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_repo.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_repo.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_linux_repo.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_linux_repo.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_mig_success..png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_mig_success..png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_mig_success..png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_mig_success..png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_mig_success.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_mig_success.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_mig_success.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_mig_success.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_schemas_selection copy.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_schemas_selection copy.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_schemas_selection copy.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_schemas_selection copy.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_schemas_selection.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_schemas_selection.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_schemas_selection.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_schemas_selection.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_guide.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_guide.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_guide.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_guide.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_import.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_import.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_import.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_import.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_installer.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_installer.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_mig_new_epas_windows_installer.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_mig_new_epas_windows_installer.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_cds.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_cds.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_cds.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_cds.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_connection_details.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_connection_details.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_connection_details.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_connection_details.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_connection_successful.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_connection_successful.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_connection_successful.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_connection_successful.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_deployed.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_deployed.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_deployed.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_deployed.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_download_file_button.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_download_file_button.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_download_file_button.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_download_file_button.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_download_file_option.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_download_file_option.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_download_file_option.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_download_file_option.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_existing_epas.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_existing_epas.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_existing_epas.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_existing_epas.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home_cloud.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home_cloud.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home_cloud.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home_cloud.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home_new.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home_new.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_home_new.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_home_new.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_select_schemas (copy).png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_select_schemas (copy).png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_select_schemas (copy).png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_select_schemas (copy).png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_select_schemas.png b/product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_select_schemas.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_schema_migration_select_schemas.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_schema_migration_select_schemas.png diff --git a/product_docs/docs/migration_portal/3.5.0/images/mp_using_portal.png b/product_docs/docs/migration_portal/3.5.0/images/mp_using_portal.png new file mode 100644 index 00000000000..b3cab175dea --- /dev/null +++ b/product_docs/docs/migration_portal/3.5.0/images/mp_using_portal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e37dd564743f32ca8c997bd0d6df633f7de681f46f31ce042e1f624104eab6b +size 222608 diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_using_portal_accessing.png b/product_docs/docs/migration_portal/3.5.0/images/mp_using_portal_accessing.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_using_portal_accessing.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_using_portal_accessing.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_assessment_report_rh_counts.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_assessment_report_rh_counts.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_assessment_report_rh_counts.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_assessment_report_rh_counts.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_branding_updates.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_branding_updates.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_branding_updates.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_branding_updates.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_common_failures.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_common_failures.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_common_failures.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_common_failures.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_compatibility_guage_color.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_compatibility_guage_color.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_compatibility_guage_color.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_compatibility_guage_color.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_csv.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_csv.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_csv.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_csv.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_objects_repaired_by_me.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_objects_repaired_by_me.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_objects_repaired_by_me.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_objects_repaired_by_me.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_prepopulated_email.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_prepopulated_email.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_prepopulated_email.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_prepopulated_email.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_warning_sign.png b/product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_warning_sign.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/mp_whats_new_warning_sign.png rename to product_docs/docs/migration_portal/3.5.0/images/mp_whats_new_warning_sign.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/project page overview.png b/product_docs/docs/migration_portal/3.5.0/images/project page overview.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/project page overview.png rename to product_docs/docs/migration_portal/3.5.0/images/project page overview.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/select-operating-system-linux.png b/product_docs/docs/migration_portal/3.5.0/images/select-operating-system-linux.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/select-operating-system-linux.png rename to product_docs/docs/migration_portal/3.5.0/images/select-operating-system-linux.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/test.png b/product_docs/docs/migration_portal/3.5.0/images/test.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/test.png rename to product_docs/docs/migration_portal/3.5.0/images/test.png diff --git a/product_docs/docs/migration_portal/3.4.0/images/whats_new_new_look.png b/product_docs/docs/migration_portal/3.5.0/images/whats_new_new_look.png similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/images/whats_new_new_look.png rename to product_docs/docs/migration_portal/3.5.0/images/whats_new_new_look.png diff --git a/product_docs/docs/migration_portal/3.4.0/index.mdx b/product_docs/docs/migration_portal/3.5.0/index.mdx similarity index 100% rename from product_docs/docs/migration_portal/3.4.0/index.mdx rename to product_docs/docs/migration_portal/3.5.0/index.mdx diff --git a/scripts/legacy_redirects/equivalent_versions.json b/scripts/legacy_redirects/equivalent_versions.json index 549cb7916c2..8cb458a1bdf 100644 --- a/scripts/legacy_redirects/equivalent_versions.json +++ b/scripts/legacy_redirects/equivalent_versions.json @@ -71,7 +71,10 @@ "13.1.4.1": "13.1.4.2" }, "EDB JDBC Connector": { - "42.2.12.1": "42.2.12.3" + "42.2.8.1": "42.2.24.1", + "42.2.9.1": "42.2.24.1", + "42.2.12.1": "42.2.24.1", + "42.2.12.3": "42.2.24.1" }, "PostgreSQL": { "11": "13", diff --git a/static/_redirects b/static/_redirects index 4820c67eb12..f7c9ac500ac 100644 --- a/static/_redirects +++ b/static/_redirects @@ -76,6 +76,13 @@ /docs/efm/4.1/* /docs/efm/4/:splat 301 /docs/efm/4.2/* /docs/efm/4/:splat 301 +# JDBC Connector +# collapsed versions +/docs/jdbc_connector/42.2.8.1/* /docs/jdbc_connector/latest/:splat 301 +/docs/jdbc_connector/42.2.9.1/* /docs/jdbc_connector/latest/:splat 301 +/docs/jdbc_connector/42.2.12.3/* /docs/jdbc_connector/latest/:splat 301 +/docs/jdbc_connector/42.2.19.1/* /docs/jdbc_connector/latest/:splat 301 + # PostGIS # Consolidated to latest version /docs/postgis/3.1.4/* /docs/postgis/latest/:splat 301