{
  "date": "2017-10-31T19:27:00",
  "slug": "dbvisit-replicate-sql-developer-chart",
  "link": "https://www.dbi-services.com/blog/dbvisit-replicate-sql-developer-chart/",
  "title": {
    "rendered": "Dbvisit replicate &#8211; SQL Developer chart"
  },
  "content": {
    "rendered": "<h2>By Franck Pachot</h2>\n<p>.<br />\nHere is a quick SQL Developer report which display a chart about the Dbvisit replicate lag over the last hours<br />\n<!--more--><br />\nThe idea is to have the following chart showing the lag in MINE and APPLY processes. Here is an example where I stopped the replication to show some lag.<br />\n<a href=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/CaptureDbvrepsqldev.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-19349\" src=\"https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/CaptureDbvrepsqldev.png\" alt=\"CaptureDbvrepsqldev\" width=\"1439\" height=\"881\" /></a></p>\n<p>The query is on the DBVREP.DBRSCOMMON_LAG_STATS on the APPLY side, which display the wallclock time with timestamp from the MINE and from the APPLY.</p>\n<p>Here is the SQL Developer report .xml:</p>\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\n&lt;displays&gt;\n&lt;display id=\"72f37b59-015f-1000-8002-0af7a3b47766\" type=\"\" style=\"Chart\" enable=\"true\"&gt;\n\t&lt;name&gt;&lt;![CDATA[Dbvisit replicate gap]]&gt;&lt;/name&gt;\n\t&lt;description&gt;&lt;![CDATA[]]&gt;&lt;/description&gt;\n\t&lt;tooltip&gt;&lt;![CDATA[]]&gt;&lt;/tooltip&gt;\n\t&lt;drillclass&gt;&lt;![CDATA[]]&gt;&lt;/drillclass&gt;\n\t&lt;CustomValues&gt;\n\t\t&lt;Y1AXIS_TITLE_TEXT&gt;&lt;![CDATA[min]]&gt;&lt;/Y1AXIS_TITLE_TEXT&gt;\n\t\t&lt;PLOT_DATATIPS_TEXT&gt;&lt;![CDATA[true]]&gt;&lt;/PLOT_DATATIPS_TEXT&gt;\n\t\t&lt;Y2AXIS_SCALE_MAXIMUM&gt;&lt;![CDATA[80.0]]&gt;&lt;/Y2AXIS_SCALE_MAXIMUM&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.COLOR&gt;&lt;![CDATA[-12565927]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.COLOR&gt;\n\t\t&lt;LEGEND_LOCATION&gt;&lt;![CDATA[AUTOMATIC]]&gt;&lt;/LEGEND_LOCATION&gt;\n\t\t&lt;PLOT_SERIES_OPTIONS_COLOR&gt;&lt;![CDATA[\\,-1344256,-16756836,-10066279,-16751002,-26368]]&gt;&lt;/PLOT_SERIES_OPTIONS_COLOR&gt;\n\t\t&lt;DATA_MAP_COLUMNS&gt;&lt;![CDATA[\\,\"WALLCLOCK\",\"WALLCLOCK\"]]&gt;&lt;/DATA_MAP_COLUMNS&gt;\n\t\t&lt;Y1AXIS_SCALE_MAXIMUM&gt;&lt;![CDATA[60.0]]&gt;&lt;/Y1AXIS_SCALE_MAXIMUM&gt;\n\t\t&lt;Y1AXIS_SCALE_INCREMENT_AUTOMATIC&gt;&lt;![CDATA[false]]&gt;&lt;/Y1AXIS_SCALE_INCREMENT_AUTOMATIC&gt;\n\t\t&lt;XAXIS_TICK_LABEL_ROTATE&gt;&lt;![CDATA[HORIZONTAL]]&gt;&lt;/XAXIS_TICK_LABEL_ROTATE&gt;\n\t\t&lt;TYPE&gt;&lt;![CDATA[BAR_VERT_CLUST]]&gt;&lt;/TYPE&gt;\n\t\t&lt;DATA_MAP_COUNT&gt;&lt;![CDATA[2]]&gt;&lt;/DATA_MAP_COUNT&gt;\n\t\t&lt;STYLE&gt;&lt;![CDATA[Default]]&gt;&lt;/STYLE&gt;\n\t\t&lt;TITLE_ALIGNMENT&gt;&lt;![CDATA[LEFT]]&gt;&lt;/TITLE_ALIGNMENT&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.NAME&gt;&lt;![CDATA[Courier New]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.NAME&gt;\n\t\t&lt;TITLE_TEXT&gt;&lt;![CDATA[Dbvisit replicate gap (in minutes)]]&gt;&lt;/TITLE_TEXT&gt;\n\t\t&lt;Y2AXIS_TICK_LABEL_ROTATE&gt;&lt;![CDATA[HORIZONTAL]]&gt;&lt;/Y2AXIS_TICK_LABEL_ROTATE&gt;\n\t\t&lt;PLOT_HGRID&gt;&lt;![CDATA[true]]&gt;&lt;/PLOT_HGRID&gt;\n\t\t&lt;PLOT_DATATIPS_VALUE&gt;&lt;![CDATA[true]]&gt;&lt;/PLOT_DATATIPS_VALUE&gt;\n\t\t&lt;Y2AXIS_LINE_WIDTH&gt;&lt;![CDATA[THINNEST]]&gt;&lt;/Y2AXIS_LINE_WIDTH&gt;\n\t\t&lt;Y1AXIS_TICK_LABEL_ROTATE&gt;&lt;![CDATA[HORIZONTAL]]&gt;&lt;/Y1AXIS_TICK_LABEL_ROTATE&gt;\n\t\t&lt;PLOT_HGRID_WIDTH&gt;&lt;![CDATA[THINNER]]&gt;&lt;/PLOT_HGRID_WIDTH&gt;\n\t\t&lt;XAXIS_TICK_LABEL_AUTO_ROTATE&gt;&lt;![CDATA[true]]&gt;&lt;/XAXIS_TICK_LABEL_AUTO_ROTATE&gt;\n\t\t&lt;Y1AXIS_SCALE_INCREMENT&gt;&lt;![CDATA[60.0]]&gt;&lt;/Y1AXIS_SCALE_INCREMENT&gt;\n\t\t&lt;Y1AXIS_LINE_WIDTH&gt;&lt;![CDATA[THINNEST]]&gt;&lt;/Y1AXIS_LINE_WIDTH&gt;\n\t\t&lt;Y1AXIS_TITLE_ALIGNMENT&gt;&lt;![CDATA[CENTER]]&gt;&lt;/Y1AXIS_TITLE_ALIGNMENT&gt;\n\t\t&lt;LEGEND_ALIGNMENT&gt;&lt;![CDATA[LEFT]]&gt;&lt;/LEGEND_ALIGNMENT&gt;\n\t\t&lt;XAXIS_LINE_WIDTH&gt;&lt;![CDATA[THINNEST]]&gt;&lt;/XAXIS_LINE_WIDTH&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.SIZE&gt;&lt;![CDATA[14]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.SIZE&gt;\n\t\t&lt;XAXIS_TITLE_ALIGNMENT&gt;&lt;![CDATA[CENTER]]&gt;&lt;/XAXIS_TITLE_ALIGNMENT&gt;\n\t\t&lt;PLOT_DATALABELS&gt;&lt;![CDATA[false]]&gt;&lt;/PLOT_DATALABELS&gt;\n\t\t&lt;Y1AXIS_LOGARITHMIC_BASE&gt;&lt;![CDATA[BASE_10]]&gt;&lt;/Y1AXIS_LOGARITHMIC_BASE&gt;\n\t\t&lt;GRID_WIDTH&gt;&lt;![CDATA[THINNER]]&gt;&lt;/GRID_WIDTH&gt;\n\t\t&lt;PLOT_DATALABELS_BAR_POSITION&gt;&lt;![CDATA[ABOVE]]&gt;&lt;/PLOT_DATALABELS_BAR_POSITION&gt;\n\t\t&lt;FOOTNOTE_ALIGNMENT&gt;&lt;![CDATA[LEFT]]&gt;&lt;/FOOTNOTE_ALIGNMENT&gt;\n\t\t&lt;XAXIS_TICK_LABEL_SKIP_MODE&gt;&lt;![CDATA[MANUAL]]&gt;&lt;/XAXIS_TICK_LABEL_SKIP_MODE&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.UNDERLINE&gt;&lt;![CDATA[false]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.UNDERLINE&gt;\n\t\t&lt;DATA_MAP_COLNAMES&gt;&lt;![CDATA[\\,\"APPLY lag seconds\",\"APPLY_PROCESS_NAME\",\"DDC_ID\",\"MINE lag seconds\",\"MINE_PROCESS_NAME\",\"WALLCLOCK\"]]&gt;&lt;/DATA_MAP_COLNAMES&gt;\n\t\t&lt;DATA_MAP_SERIES&gt;&lt;![CDATA[\\,\"MINE_PROCESS_NAME\",\"APPLY_PROCESS_NAME\"]]&gt;&lt;/DATA_MAP_SERIES&gt;\n\t\t&lt;Y2AXIS_LOGARITHMIC_BASE&gt;&lt;![CDATA[BASE_10]]&gt;&lt;/Y2AXIS_LOGARITHMIC_BASE&gt;\n\t\t&lt;Y2AXIS_SCALE_MINIMUM&gt;&lt;![CDATA[10.0]]&gt;&lt;/Y2AXIS_SCALE_MINIMUM&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.POSTURE&gt;&lt;![CDATA[false]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.POSTURE&gt;\n\t\t&lt;DATA_MAP_VALUES&gt;&lt;![CDATA[\\,\"MINE lag seconds\",\"MINE lag seconds\"]]&gt;&lt;/DATA_MAP_VALUES&gt;\n\t\t&lt;PLOT_VGRID&gt;&lt;![CDATA[true]]&gt;&lt;/PLOT_VGRID&gt;\n\t\t&lt;TITLE&gt;&lt;![CDATA[true]]&gt;&lt;/TITLE&gt;\n\t\t&lt;Y1AXIS_TITLE&gt;&lt;![CDATA[false]]&gt;&lt;/Y1AXIS_TITLE&gt;\n\t\t&lt;Y2AXIS_SCALE_INCREMENT&gt;&lt;![CDATA[20.0]]&gt;&lt;/Y2AXIS_SCALE_INCREMENT&gt;\n\t\t&lt;PLOT_VGRID_WIDTH&gt;&lt;![CDATA[THINNER]]&gt;&lt;/PLOT_VGRID_WIDTH&gt;\n\t\t&lt;Y2AXIS_TITLE_ALIGNMENT&gt;&lt;![CDATA[CENTER]]&gt;&lt;/Y2AXIS_TITLE_ALIGNMENT&gt;\n\t\t&lt;SUBTITLE_ALIGNMENT&gt;&lt;![CDATA[LEFT]]&gt;&lt;/SUBTITLE_ALIGNMENT&gt;\n\t\t&lt;XAXIS_TICK_LABEL_FONT.WEIGHT&gt;&lt;![CDATA[false]]&gt;&lt;/XAXIS_TICK_LABEL_FONT.WEIGHT&gt;\n\t&lt;/CustomValues&gt;\n\t&lt;query&gt;\n\t\t&lt;sql&gt;&lt;![CDATA[SELECT  ddc_id,mine_process_name,apply_process_name,\"WALLCLOCK\", \"APPLY lag seconds\", \"MINE lag seconds\" FROM(\nselect ddc_id,mine_process_name,apply_process_name,\nto_char(trunc(wallclock_date,'hh24'),'dd-mon hh24:mi') wallclock,\nmax(round((wallclock_date-apply_date)*24*60*60)) \"APPLY lag seconds\", max(round((wallclock_date-mine_date)*24*60*60)) \"MINE lag seconds\"\nfrom DBVREP.DBRSCOMMON_LAG_STATS \nwhere wallclock_date&gt;sysdate-3\ngroup by ddc_id,mine_process_name,apply_process_name,to_char(trunc(wallclock_date,'hh24'),'dd-mon hh24:mi')\norder by wallclock\n)]]&gt;&lt;/sql&gt;\n\t&lt;/query&gt;\n\t\t&lt;pdf version=\"VERSION_1_7\" compression=\"CONTENT\"&gt;\n\t\t\t&lt;docproperty title=\"null\" author=\"null\" subject=\"null\" keywords=\"null\" /&gt;\n\t\t\t&lt;cell toppadding=\"2\" bottompadding=\"2\" leftpadding=\"2\" rightpadding=\"2\" horizontalalign=\"LEFT\" verticalalign=\"TOP\" wrap=\"true\" /&gt;\n\t\t\t&lt;column&gt;\n\t\t\t\t&lt;heading font=\"null\" size=\"10\" style=\"NORMAL\" color=\"-16777216\" rowshading=\"-1\" labeling=\"FIRST_PAGE\" /&gt;\n\t\t\t\t&lt;footing font=\"null\" size=\"10\" style=\"NORMAL\" color=\"-16777216\" rowshading=\"-1\" labeling=\"NONE\" /&gt;\n\t\t\t\t&lt;blob blob=\"NONE\" zip=\"false\" /&gt;\n\t\t\t&lt;/column&gt;\n\t\t\t&lt;table font=\"null\" size=\"10\" style=\"NORMAL\" color=\"-16777216\" userowshading=\"false\" oddrowshading=\"-1\" evenrowshading=\"-1\" showborders=\"true\" spacingbefore=\"12\" spacingafter=\"12\" horizontalalign=\"LEFT\" /&gt;\n\t\t\t&lt;header enable=\"false\" generatedate=\"false\"&gt;\n\t\t\t\t&lt;data&gt;\n\t\t\t\tnull\t\t\t\t&lt;/data&gt;\n\t\t\t&lt;/header&gt;\n\t\t\t&lt;footer enable=\"false\" generatedate=\"false\"&gt;\n\t\t\t\t&lt;data value=\"null\" /&gt;\n\t\t\t&lt;/footer&gt;\n\t\t\t&lt;pagesetup papersize=\"LETTER\" orientation=\"1\" measurement=\"in\" margintop=\"1.0\" marginbottom=\"1.0\" marginleft=\"1.0\" marginright=\"1.0\" /&gt;\n\t\t&lt;/pdf&gt;\n&lt;/display&gt;\n&lt;/displays&gt;</code></pre>\n",
    "protected": false
  }
}
