Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,8 @@ fetch_size=1000
# MySQL:
# use_stored_procedure=archive.get_browser_data

# PostgreSQL
# use_stored_procedure=public.get_browser_data

# Don't use stored procedure
use_stored_procedure=
use_stored_procedure=
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public RDBArchiveReader(final String url, final String user,
break;
case PostgreSQL:
is_oracle = false;
this.stored_procedure = "";
this.stored_procedure = stored_procedure;
break;
case Oracle:
is_oracle = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Types;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.sql.Date;
import java.util.List;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand Down Expand Up @@ -81,6 +85,9 @@ private void executeProcedure(final Timestamp start, final Timestamp end,
case MySQL:
sql = "{call " + stored_procedure + "(?, ?, ?, ?)}";
break;
case PostgreSQL:
sql = "{? = call " + stored_procedure + "(?, ?, ?, ?)}";
break;
case Oracle:
sql = "begin ? := " + stored_procedure + "(?, ?, ?, ?); end;";
break;
Expand All @@ -104,6 +111,26 @@ private void executeProcedure(final Timestamp start, final Timestamp end,
statement.setInt(4, count);
result = statement.executeQuery();
}
else if(dialect == RDBUtil.Dialect.PostgreSQL)
{ //PostgreSQL
boolean autoCommit = reader.getRDB().getConnection().getAutoCommit();
// Disable auto-commit to determine sample with PostgreSQL when fetch direction is FETCH_FORWARD
if (autoCommit) {
reader.getRDB().getConnection().setAutoCommit(false);
}
statement.registerOutParameter(1, Types.OTHER);
statement.setLong(2, channel_id);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
statement.setString(3, sdf.format(new Date(TimestampHelper.toSQLTimestamp(start).getTime())));
statement.setString(4, sdf.format(new Date(TimestampHelper.toSQLTimestamp(end).getTime())));
statement.setLong(5, count);
statement.setFetchDirection(ResultSet.FETCH_FORWARD);
statement.setFetchSize(1000);
statement.execute();
result = (ResultSet) statement.getObject(1);
}

else
{ //ORACLE
statement.registerOutParameter(1, OracleTypes.CURSOR);
Expand Down Expand Up @@ -246,5 +273,14 @@ public void close()
super.close();
index = -1;
values = null;
if (reader.getRDB().getDialect() == Dialect.PostgreSQL) {
// Restore default auto-commit on result set close
try {
reader.getRDB().getConnection().setAutoCommit(true);
} catch (Exception e) {
// Ignore
}
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ of the distribution package.
<import plugin="org.eclipse.wst.validation"/>
<import plugin="org.eclipse.wst.validation.ui"/>
<import plugin="org.apache.jasper.glassfish"/>
<import plugin="org.w3c.dom.smil" version="1.0.0" match="compatible"/>
<import plugin="org.w3c.dom.smil"/>
</requires>

<plugin
Expand Down Expand Up @@ -646,7 +646,7 @@ of the distribution package.
id="org.w3c.dom.smil"
download-size="0"
install-size="0"
version="0.0.0"
version="1.0.0.v200806040011"
unpack="false"/>

</feature>
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
org.csstudio.logging.jms2rdb/httpd_port=4914
org.csstudio.logging.jms2rdb/jms_url=failover:(tcp://localhost:61616)
org.csstudio.logging.jms2rdb/jms_topic=demo_SERVER, demo_CLIENT, demo_TALK, LOG, TALK, WRITE
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0?user=log&password=$log
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0
org.csstudio.logging.jms2rdb/rdb_user=log_ro
org.csstudio.logging.jms2rdb/rdb_password=$log
org.csstudio.logging.jms2rdb/rdb_schema=


28 changes: 15 additions & 13 deletions products/ITER/products/org.csstudio.iter.css.product/css.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/bin/bash

#+======================================================================
# $HeadURL: https://svnpub.iter.org/codac/iter/codac/dev/units/m-css-iter/trunk/org.csstudio.iter.css.product/css.sh $
# $Id: css.sh 31100 2012-10-23 20:17:15Z zagara $
# $HeadURL: https://svnpub.iter.org/codac/iter/codac/dev/units/m-css/trunk/products/ITER/products/org.csstudio.iter.css.product/css.sh $
# $Id: css.sh 49232 2014-08-25 15:17:45Z zagara $
#
# Project : CODAC Core System
#
Expand All @@ -28,23 +28,25 @@ CODAC_ROOT=$(readlink -f "$0" | sed -n -e 's|^\(/[^/]*/[^/]*\)/.*|\1|p')

# If user args do not contain any argument starting with -
# add --launcher.openFile before to interpret them as files to open
OPEN_FILE_ARG="--launcher.openFile"
USER_ARGS=""
OPEN_FILES=()
USER_ARGS=()
while [ -n "$1" ]; do
case $1 in
--launcher.openFile)
;;
-*)
USER_ARGS=("${USER_ARGS[@]}" "$1")
;;
*)
USER_ARGS="${USER_ARGS:+${USER_ARGS} }\"$1\"";
if [[ "${1:0:1}" == "-" ]]; then
OPEN_FILE_ARG="";
fi
shift 1;;
OPEN_FILES=("${OPEN_FILES[@]}" "$(readlink -fm "$1")")
;;
esac
shift 1
done
if [[ USER_ARGS != "" ]]; then
USER_ARGS="${OPEN_FILE_ARG} ${USER_ARGS}"
if [ ${#OPEN_FILES[@]} -gt 0 ]; then
USER_ARGS=("${USER_ARGS[@]}" "--launcher.openFile" "${OPEN_FILES[@]}")
fi

set -- ${USER_ARGS} -share_link /opt/codac/opi=CSS/opi,/opt/codac/examples=CSS/examples,/opt/codac/opi/boy/SymbolLibrary=CSS/SymbolLibrary
set -- -share_link /opt/codac/opi=CSS/opi,/opt/codac/examples=CSS/examples,/opt/codac/opi/boy/SymbolLibrary=CSS/SymbolLibrary "${USER_ARGS[@]}"

. ${CODAC_ROOT}/bin/codacenv
. ${CODAC_ROOT}/bin/css-wrapper-script
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ org.csstudio.utility.pvmanager.loc/zero_initialization=true
org.csstudio.trends.databrowser2/urls=jdbc:postgresql://localhost/css_archive_3_0_0|Archive RDB
org.csstudio.trends.databrowser2/email_default_sender=CSS Data Browser <css-databrowser@codac.iter.org>

#PostgreSQL stored procedure
org.csstudio.archive.reader.rdb/use_stored_procedure=public.get_browser_data

# Default data sources for newly added channels
# Format: <name>|<key>|<url>
# xnds: URLs use the key. Other URLs might ignore the key.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
org.csstudio.logging.jms2rdb/jms_topic=CODAC_AlarmHandler_SERVER, CODAC_AlarmHandler_CLIENT, CODAC_AlarmHandler_TALK, LOG, TALK, WRITE

# Database connection
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0?user=log&password=$log
org.csstudio.logging.jms2rdb/rdb_url=jdbc:postgresql://localhost/css_log_3_0_0
org.csstudio.logging.jms2rdb/rdb_user=log_ro
org.csstudio.logging.jms2rdb/rdb_password=$log

# Logging preferences
org.csstudio.logging/file_level=CONFIG
Expand Down