IIUG Insider (Issue #205) July 2017

by

Highlights: Informix 12.10.FC9 has been released

Welcome to the International Informix Users Group (IIUG) Insider! Designed for IIUG members and Informix user group leaders, this publication contains timely and relevant information for the IBM Informix community.

Contents:

Editorial

Finally we have a new fix pack for Informix. So it seems we are back on track. Informix switched to a continuous development model. I hope we will continue to see more new features and bug fixes.

I am planning to move to FC9 in the near future. In the next issue I will let you know how it went.

Glad to see HCL has picked up development and hope marketing will soon follow.

Gary Ben-Israel

IIUG Insider Editor

IIUG Board of Directors

gary@iiug.org

Highlights

Informix 12.10.FC9 has been released

What’s new in IBM Informix version 12.10.xC9

Smart Triggers for pushing data to clients

In a relational database environment, client applications are constantly monitoring and triggering other complex jobs, based on changes happening in the database. Applications need to be able to detect events in the database as they happen, without adding overhead to the database server.

With the release of Informix 12.10.xC9, clients can now create JDBC Smart Triggers to register changes in a dataset, using SELECT statements and WHERE clauses, and push data from the server to the client. Scaling is achieved by clients not having to poll for data, while the database server’s parallel architecture can feed the data to all clients by asynchronously reading logical log file changes. This design lets client applications scale linearly without adding significant overhead to the database server or any OLTP applications making changes to the database.

Data returned to the client is in a developer-friendly JSON format.

This feature is documented in the IBM Informix Enterprise Replication Guide.

Track moving objects

You can track a moving object, such as a vehicle, by capturing location information for the object at regular time intervals. You can use the new spatiotemporal search extension to index the data and then query on either time or on location to determine the relationship of one to the other. You can query when an object was at a specified location, or where an object was at a specified time. You can also find the trajectory of a moving object over a range of time.

The spatiotemporal search extension depends on the TimeSeries and spatial extensions. You store the spatiotemporal data in a TimeSeries data type with columns for longitude and latitude. You index and query the spatiotemporal data with the new spatiotemporal search functions. You can also query spatiotemporal data with time series and spatial routines.

A greater frequency for tracking moving or stationary objects is available. Time can now be entered as a string or a number.

This feature is documented in the IBM Informix Spatiotemporal Search for Moving Objects User’s Guide.

The Release Notes can be found here.

https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.relnotes.doc/relnotes_ifx1210xc9DE.htm

Gary Ben-Israel

RFE corner

Just in case you are not aware, some time ago IBM created a public website to collect the requests for new features directly from users. The RFE (Requests For Enhancements) website is included in developerWorks. You can access it here.

Once you logged in with your usual IBM ID, choose “Information Management” in the Brand dropdown box and “Informix Servers” or “Client Products” in the Products dropdown box.

The interesting thing is that any request, including your request, if you place one, is submitted to be voted on. This means the RFEs that receive more votes have a greater chance to be considered by the architecture and development teams for further consideration. In other words, this IS your opportunity to provide enhancement ideas even if you are not the biggest IBM customer on the planet earth.

Some RFEs will be of great interest, others will not seem useful to you. This is why your opinion is important. Do not hesitate to vote and place comments!

The idea of the RFE corner is to provide a digest on new Informix RFEs and make those RFEs more visible and accessible for the community, so that you can vote for them in a faster and easier way. By participating actively in this website, IBM will have solid and useful elements from the customer base to introduce new functionality to Informix product.

Also in the area of IBM website, a new functionality has been released: MyNotifications. You will want to register this webpage in order to receive the notifications of your choice (new product defects, new patch release, new versions etc…, on the frequency of your choice (daily, weekly). I have registered and will definitely remain registered, due to the value of the information delivered.

Check at this place.

New RFEs for July 2017

Customers keep wanted new features or enhance existing functionality. Let’s check what is in the air this month

Informix : Re-introduce the -w parameter for dbschema
Request Re-introduce the -w parameter for dbschema so a remote dbschema can be done Votes: 3

Ability to sync tables to HDR & RSS secondaries when converting from RAW to STANDARD mode.
It is significantly faster to load a table in TYPE(RAW) mode than TYPE(STANDARD) mode. However, this option is not practical for sites using HDR and/or RSS secondary servers for replication as RAW mode tables do not replicate forcing the site to break and reestablish replication from scratch.
Request to add an option to ALTER TABLE that would copy the data to the secondaries in the background after altering the primary copy of the table to standard. Votes: 12

Integrate user authentication among IDS/JSON/REST
Presently, the only way to authenticate users to the REST listener is by setting up mapped users and using PAM, which limits things to the Mongo 2.6 API and earlier.
Request to implement a solution so that users would be able to connect via the wire listener under their own IDs and have the same permissions they would have if they were connecting to the database via traditional means.
Votes: 3

Secure the Wire Listener: Stop requiring clear text passwords
Currently, the only way to secure the wire listener is to put clear text passwords in the jsonListener.properties file.
Request to implementation a solution to keep those clear-text passwords out of that file, using stashed passwords for SSL and/or onpassword for the JDBC connection.
Votes: 3

TOP 14 RFE’s

Abstract Status Votes Progr.
In-Place Alter for varchar, lvarchar and boolean Under Consideration 58 +1
Backup from RSS or HDR Secondaries using ontape, onunload, onbar, dbexport Under Consideration 55 +1
SQL interface to obtain the temporary space usage (tables, hash, sorts…) Submitted 48 0
Obtain the query plan of a running query Under Consideration 46 0
Request to track and save a time stamp for last time an index was used. Nee… Submitted 39 0
Backup Individual database, not entire instance Submitted 33 0
ALTER owner of database objects after creation Submitted 29 0
Implement CREATE OR REPLACE option for stored procedures Under Consideration 27 +1
New feature to have FORCE_DDL_EXEC functionality for all DDL changes Submitted 24 0
Allow triggers install/updates without taking an outage for the box Under Consideration 18 0
Ability to re-create views and procedures without dependent objects being dropped (34762 Under consideration 17 0
Informix should be able to change owner on tables and any other objects Submitted 17 0
Need an onmode option to terminate orphaned, tightly coupled global transac… Under Consideration 17 0
Allow “group commit” as other RDBMS Under Consideration 17 0

Hot RFE’s
This new list gives visibility on hot RFE’s that are not yet in the Top 14 nor in the new RFE’s

Abstract Status Votes
Appendable External Tables Submitted 14
Only in-memory Temp table Submitted 14
Enable switching of primary/mirror chunks with “onspaces” Planned for future release 8
Ability to VM snapshot an On-Line Informix database Under consideration 7
create indexes for external tables Submitted 6
temp Dbspace in RAM Submitted 5

Do not forget to vote for one or several of those RFE’s if they fit your requirements.

You can access each RFE by clicking on the above links. At the bottom of each RFE page you will find a hyperlink to vote for it. You will see the Request stats, including number of votes for this request, on the right side of the request page. The more votes, the greater the chance an enhancement will be addressed by the Development Team, taking into consideration the general interest.

Take some time to examine the full list and vote for the enhancement you would like to see implemented.

Eric Vercelletto

Works for me

In this section I will write about things that help me in my day to day work. Most DBAs probably have their own ways to perform these tasks which may be different than the way I do them. So, if you find an error or can think of a better way, please let me know. If not feel, free to use these tips as is or modify them to fit your needs.

Finding the dbspaces for non-fragmented tables including clob/blob columns can be done via dbschema but sometimes we want to retrieve this information using SQL. We use the following view.

create view dbspaces_view ( tabname, tab_space, colname, type, col_space ) as

select a.tabname, get_table_space(a.tabname)::char(16),
"---", "---", "---"
from systables a where tabid > 99 and tabtype = "T"

union

select a.tabname[1,32], get_table_space(a.tabname)::char(16),
b.colname[1,16], d.name[1,8], c.sbspace[1,8] from systables a, syscolumns b, syscolattribs c, sysxtdtypes d
where a.tabid = b.tabid
and a.tabid = c.tabid
and b.colno = c.colno
and b.extended_id = d.extended_id
and a.tabid >99

union

select b.tabname[1,32], get_table_space(b.tabname)::char(16),
c.colname[1,16],
case
when ( c.coltype = 11 or (c.coltype - 256) = 11 ) then "byte"
when (c.coltype - 256) = 12 then "text"
else c.coltype::char(8)
end,
a.spacename[1,8] from sysblobs a, systables b, syscolumns c
where a.tabid = b.tabid
and a.tabid = c.tabid
and a.colno = c.colno
and a.tabid >99;

Gary Ben-Israel

Developer corner

Jeff Filippi – Informix Tips

Customize Saving SQLTRACE Data – Long running SQL’s

Here is a way to save SQLTRACE information, but to only save SQL statement that run greater than “X” number of seconds.

This way you can look at your slowest SQL to look at tuning it.

You will be implementing a task in the SYSADMIN database and creating the table in that database also.

Below is create table statement, you can size the column “sql_statement” to what you think is the largest SQL you will have.

create raw table "informix".save_sqltrace
(
date_time datetime year to second,
sql_id int8,
sql_runtime float,
sql_sid int8,
sql_uid int8,
sql_statement char(2000),
sql_database char(30)
) in sqltrace extent size 99996 next size 99996 lock mode row;

create index "informix".idx_savesql1 on "informix".save_sqltrace (date_time) using btree in sqltrace;
create index "informix".idx_savesql2 on "informix".save_sqltrace (sql_runtime) using btree in sqltrace;
create index "informix".idx_savesql3 on "informix".save_sqltrace (sql_id) using btree in sqltrace;

NOTE: Create a new dbspace so that if the table fills up the dbspace it does not affect any other process.

Then insert the row below into the “ph_task” table. This will run the task every minute.

0|save_trace|Saves SQL Trace when run time greater than set value.|TASK|9251|||sysadmin|insert into save_sqltrace select current, sql_id, sql_runtime, sql_finishtime, sql_sid, sql_uid, sql_statement, sql_database from sysmaster:syssqltrace where (sql_runtime > 5 and (sql_finishtime > (select max(sql_finishtime) from save_sqltrace)) or (sql_runtime > 5 and ((select count(*) from save_sqltrace) = 0)))| 30 00:00:00|00:00:00|| 0 00:01:00|2017-07-18 14:54:17|9237|0|t|t|t|t|t|t|t|400|PERFORMANCE|t|0|

Calendar of events

August – 2017

Date Event Location Contact
1 Tampa – Informix 12 technical Roadshow Tampa, FL, USA
8 Washington DC – WAIUG Meeting Washington DC, USA

September – 2017

Date Event Location Contact
18 Brazil – Informix Roadshow Sao Paulo, Brazil

Informix resources

IBM Informix home page www.informix.com or directly at: http://www-01.ibm.com/software/data/informix/

Informix Blogs and Wikis

Blogs and Wikis that have been updated during the last month

More Blogs and Wikis

Social media

Linkedin : https://www.linkedin.com/groups/25049
Twitter : https://twitter.com/search?q=IBM_Informix
Facebook : https://www.facebook.com/IBM.Informix
YouTube : https://ibm.biz/BdH2nb
Informix IoT Channel : https://ibm.biz/BdH2nm

Forums, Groups, Videos, and Magazines

Closing and Credits

The International Informix Users Group (IIUG) is an organization designed to enhance communications between its worldwide user community and IBM. The IIUG’s membership database now exceeds 25,000 entries and enjoys the support and commitment of IBM’s Information Management division. Key programs include local user groups and special interest groups, which we promote and assist from launch through growth.

Sources: IIUG Board of Directors

IBM Corp.

Editor: Gary Ben-Israel

For comments, please send an email to gary@iiug.org

Leave a Reply

Your email address will not be published. Required fields are marked *


PageLines