Talend: tmapSQLOutput – Skipping Identity Column during Inserts


A quick session on skipping system columns (Identity, timestamp) when inserting data into DB tables using Talend – Open Studio

Error Messages

Here is the error message we get:


Cannot insert explicit value for identity column in table 'account' when IDENTITY_INSERT is set to OFF.




Component – tMSSqlOutput

Choose Component

In the Canvas, choose the tMSSQLOutput component.



Basic Settings




Make sure of the following:

  • “Turn on Identity insert” is off / unchecked


Advanced Settings

Here is what the “Advanced settings” screen looks like initially.



Use field Options

To get more customization we have to check the “Use field Options” checkbox.


Use field Options

Once the “Use field Options” checkbox is checked, the individual fields are listed.



Quick Explanation:
  • We can see that all the fields have the “Updatable” and “Insertable” checkboxes checked.
  • It is nice that we are also able to explicitly specify the “Update Key” and “Deletion Key”.  Being able to so will be useful for tables missing a primary key.


Use field Options – After

To specify that our Identity Column (id), should be skipped during inserts and updates, we uncheck the row for the “Updatable” and “Insertable” columns.


Retry Execution

We saved the changes, and retried the execution and we are good.


SQL Profiler

While failing and during success run, we captured the DB interaction using SQL Server Profiler.

Identity Column Referenced

SET TEXTSIZE 2147483647


declare @p1 int
set @p1=1
exec sp_prepare
       @p1 output
      ,N'@P0 int,@P1 nvarchar(4000),@P2 nvarchar(4000),@P3 nvarchar(4000)'
      ,N'INSERT INTO [sf].[account] ([id],[AccountNumber],[AccountName],[WebSite]) VALUES ( @P0 , @P1 , @P2 , @P3 )',1

select @p1

exec sp_execute 1,0,N'CC978213',N'GenePoint',N'www.genepoint.com'

exec sp_execute 1,0,N'CD355119-A',N'United Oil & Gas, UK',N'http://www.uos.com'

exec sp_execute 1,0,N'CD355120-B',N'United Oil & Gas, Singapore',N'http://www.uos.com'

exec sp_execute 1,0,NULL,N'sForce',N'www.sforce.com'


Identity Column Skipped

SET TEXTSIZE 2147483647


declare @p1 int
set @p1=1
exec sp_prepare
       @p1 output
      ,N'@P0 nvarchar(4000),@P1 nvarchar(4000),@P2 nvarchar(4000)'
      ,N'INSERT INTO [sf].[account] ([AccountNumber],[AccountName],[WebSite]) VALUES ( @P0 , @P1 , @P2 )'
select @p1

select @p1

exec sp_execute 1,N'CC978213',N'GenePoint',N'www.genepoint.com'

exec sp_execute 1,N'CD355119-A',N'United Oil & Gas, UK',N'http://www.uos.com'

exec sp_execute 1,N'CD355120-B',N'United Oil & Gas, Singapore',N'http://www.uos.com'

exec sp_execute 1,NULL,N'sForce',N'www.sforce.com'



Quick Explanation:

  1. Failing
    • When we were failing, the id column was included in the list of columns and values passed to SQL Server
    • A value of 0 was assigned to the id column
  2. Successful
    • Once successful, the id column was skipped altogether



Crediting Bekwam

Creating a SQL Server Identity Column with Talend Open Studio

Talend: Job Log – Could not reserve enough space for object heap


Running a little job in Talend and getting the error indicated below.



Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Error occurred during initialization of VM
Could not reserve enough space for object heap
Job SalesforceToSQLServer ended at 17:16 01/08/2015. [exit code=1]



What is Heap?

Before we try to diagnose the problem, let us ask ourselves what is stored in the Heap of a Java application.


Heap and Stack

In an application, there are a few memory segments, let us concentrate on Heap and Stack, at this time.


  • Local variables
  • Function call


  • Objects
    • Objects created through new


Memory Errors

When memory is requested and the JVM is unable to satisfy the request, the inadequacy is reflected via error messages.

Thankfully depending on which memory block (Stack or Heap) fails, a distinct error is returned.


  • java.lang.StackOverFlowError


  • java.lang.OutofMemoryError


As we are interested in the Database aspect of things, we are a lot more interested in the Heap side of the house.

And, likely the bigger the better.



Let us return back to our “small” problem.

The error is due to the way that our job’s Java JVM arguments is configured:



Here is our Job’s JVM arguments current configuration:

Option Value Meaning
 Xms 256M

The -Xms option sets the initial and minimum Java heap size. The Java heap (the “heap”) is the part of the memory where blocks of memory are allocated to objects and freed during garbage collection.

Note that is does not limit the amount of memory that the JVM can use.

 Xmx 1024M

This option sets the maximum Java heap size. The Java heap (the “heap”) is the part of the memory where blocks of memory are allocated to objects and freed during garbage collection. Depending upon the kind of operating system you are running, the maximum value you can set for the Java heap can vary.

Note that is does not limit the amount of memory that the JVM can use.





Run 32-bit App, but request 64-bit Java JVM


Sign Post:

Based on a comment by AndreV on Stackoverflow – “Maximum heap size for JVM on a 32-bit and 64-bit windows server” ( http://stackoverflow.com/questions/15100737/maximum-heap-size-for-jvm-on-a-32-bit-and-64-bit-windows-server ), we will try using the -d64 option to request 64-bit JVM.


Advanced Settings:

So what we did is :

  • Access the “Advanced settings” tab
  • Click on the New button, and the -d64 option




Job Output:




Error Message:

Error: This java instance does not support a 64-bit JVM


In 32 bit, change Max Heap Size (Xmx)


Here are the steps we took:

  • Access the “Advanced settings” tab
  • Doubleclick on -Xmx1024M
  • In the Set VM Argument, change the entry from -Xmx1024M to Xmx256M



JVM Settings – Before












JVM Settings – After

JVMSettings - After



Once we clicked the Run button, the Application ran successfully




32-bit VS 64-bit


In MS Windows, upon Application installation, a lone shortcut is created in the Start menu.  That link launches the 32-bit Application.

A quick way to determine the bitness of a running App, is to look at the Task Manager.



In 64 bit OSes, the Image name column will have a *32 marker to distinguish them.


Access 64-bit

The Application is bundled in 32-bit and 64-bit mode.




In 64 bit, Keep Max Heap Size (Xmx)


Let us play with the 64-bit app by launching TOS_DI-win-x86-64.exe.

In Task Manager, here is what we see:



Quick Explanation:

  • In the Image name column, the 32-bit marker is gone
  • Unfortunately, the memory footprint has been dramatically increased from 315,000 ( 315 MB ) to 900,664K ( 900 MB )



Here are the steps we took:

  • Access the “Advanced settings” tab
  • Doubleclick on -Xmx **** entry
  • In the Set VM Argument, keep/ change the entry at / to -Xmx1024M


JVM Settings – Before

JVMSettings - After



Value – Before







JVM Settings – After



Job Recreated:

Once we modify the JVM arguments, I will suggest that you save the project.

The application detects the changes, and regenerates the package.

Update Detection:




Building Job:




Upon clicking the Run button, we were able to validate that the Application ran successfully




There are a few noted ways to right the error stating “Could not reserve enough space for object heap“.

The ways are:

  1. In 32 bit mode:
    • Reduce the maximum requested heap size from the default of 1024 M to 256 M
  2. In 64 bit mode:
    • Keep the requested Heap Size at 1024M

Please keep in mind that 64-bit applications use markedly more memory than 32-bit app.

Having said that 64-bit applications are more reliable, and if your hardware is 64-bit capable, make every effort to run a 64-bit OS.  And, to run 64-bit applications.


Anna of Jerusalem : The Witness


Once again sharing without permission.

But, I honestly think this is yet another story that can confound some, but encourage so many other’s thoughts, voices, and may be pens.

Cheryl McGrath – Anna of Jerusalem – The Witness

Celebrating Anna of Jerusalem: The Witness
by Cheryl McGrath • July 7, 2015 •

…by the mouth of two or three witnesses the matter shall be established.”
(Deu. 19:15)

So said the law given to Moses by Yahweh. But in Jerusalem at the time of Jesus’ birth, Jewish tradition and culture declared that witnesses must always be male. Women were held in such low esteem that they were not allowed to testify in any court of law. They were considered incapable of giving witness in any situation.

God, however, had given no such command and was about to refute the prejudice and contempt placed on women by their culture. As Joseph and Mary presented their forty day old infant Son, Jesus, at the Temple according to the law, two witnesses sent by the Holy Spirit appeared on the scene. And one of them was a woman.

Simeon, who the Bible calls ‘just and devout’ first took the Child up into his arms and prophesied over Him, giving thanks to God that he had lived to see Israel’s Messiah.

Then we are told: “Now there was one, Anna, a prophetess, the daughter of Phanuel, of the tribe of Asher. She was of a great age, and had lived with a husband seven years from her virginity, and this woman was a widow of about eighty four years who did not depart from the temple, but served God with fastings and prayers night and day. And coming in that instant she gave thanks to the Lord and spoke of Him to all those who looked for redemption in Jerusalem.” (Luke 2:36-38)

Who was this elderly widow we only know as Anna?

We know that she was very old, she had been widowed at a young age and that she lived her life in and around the temple in Jerusalem.

The Temple covered a very large area and consisted of the sanctuary, courts, balconies, porticos and other buildings. No doubt Anna was a familiar figure around the Temple precincts, most likely ignored as just another old widow as she carried out her prayers and fastings daily against the backdrop of the busy Temple proceedings.

But this was no ordinary widow. Luke tells us Anna was a ‘prophetess’, and as is always the case for prophets, most of her life was spent in prayer. Not surprisingly, her prayers were intercessory, petitionary, as indicated by the Greek word “deesis” used here for “prayers”.

And we are told this woman SERVED God. Imagine: while the high priest and his exclusive rank of priests and helpers carried out the daily religious rituals required by Jewish law, here among them dwelt an elderly widowed prophetess, unrecognised, unacknowledged and uninvited. As only He knows how, God was once again confounding the high and mighty by the weak and foolish (1 Cor. 1:27), because among all the traditional ceremony and ritual of Jewish temple life, God had placed one who truly SERVED Him.

The honour and privilege of being one of two chosen witnesses to God’s unveiling of the infant Christ that day was given not to a high priest, not to a Levite, not to a man…..but to an aged and faithful servant who just happened to also be a WOMAN.

The New Testament tells us that the Law and the Prophets witness to the righteousness of God (Rom. 3:21). That day in Jerusalem, Simeon, the just and devout man who waited for the comfort of Israel (and whose name means “harkening, listening”) was sent into the Temple to represent the law. At the same moment Anna the prophetess was sent by the Spirit to represent the prophets. And God had for Himself two witnesses!

Anna, widow, prophetess and servant of the Most High God, chosen by God in all of Israel to give eternal witness to the arrival of His Son on the earth. Luke chapter 2 tells us simply that Anna ‘gave thanks to the Lord’, but the phrase for ‘gave thanks’ more accurately means ‘to agree, or to acknowledge in the presence of’.

Anna was sent by God to agree with Simeon and give public witness to who this Infant actually was!

After giving thanks to God, we are then told Anna ‘spoke of Him’ (Jesus) to all those who looked for redemption in Jerusalem. Can you hear the ‘I suffer not a woman to teach’ crowd choking and spluttering over that one? Anna taught God’s people about Christ!

Man’s culture and tradition said ‘no woman may witness!’ But God Himself said otherwise. It was He who chose and called His servant Anna to be His witness to the coming of the Messiah. It was He who anointed her to ‘speak of Him’.

And though religious culture and tradition may still oppose, it is He who still calls His daughters to witness and “speak of Him” regardless of the traditions of men.

In Closing

Please visit  Ishshah’s story website @ http://ishshahsstory.com to read other inspirational posts.

The editors are Nancy Bentz, Pat Joyce, and Cheryl McGrath.


Configuring “HP OfficeJet 600″ on MS Windows XP


One of my adoptive family called me last week requesting my help to connect the “HP OfficeJet 600″ that their son brought back from college.


What Works

The Apple laptop and MS Window 7 laptops worked flawlessly.  They were able to connect to the printer fairly quickly.

Yes, we had to to a couple of things to the Printer.  Those are:

  1. Found the Power card and powered up the Printer
  2. Connected the Printer to the back of the AT&T Wireless Access Point ( WAP )
    • The Printer prompted for WEP and the son, who has a very good mind, knew it off hand and entered it


What does not work

The lone MS Windows XP computer does not work.

Install Printer Driver

Is Printer Driver bundled with MS Windows?

Basically, the printer driver is not bundled with Windows.

Here is what happens when we try to add the Printer by “tricking” windows to think the printer is a Local Printer.





  1. We can see that “HP OfficeJet 6600” is not listed in the list of Printers


Download Software & Driver

The Printer Driver is available @ http://support.hp.com/us-en/product/HP-Officejet-6600-e-All-in-One-Printer-series—H7/4322968/model/4323587/drivers.


Option 1: Check for updates and recommendations (suggested)

I tried to go with Option 1: Check for updates and recommendations (suggested) by clicking the “Check now” button.



But, was not successful.


Option 2: Go directly to software and driver results

And, so chose to directly download the Software and driver.


Software and Driver

As of July 2015, the Software and Driver available is:




  • Version :- 28.8
  • Size :- 113.3 MB
  • Date : August 18th, 2014
  • File name: OJ6600_1315-1.exe


Software Download Progress

HP is downloading the selected files to your computer….





Install Software & Driver

Once the Software is downloaded and the binary is launched, here is the subsequent screen:




We opted out:

  • HP Officejet 6600 Product Improvement Study
  • Bing Bar for HP ( includes HP Smart Print )

And, kept:

  • HP Update
  • HP Officejet 6600 Help
  • I.R.I.S. OCR



Configure Software & Driver

Printer Setup & Software

From the “Printer Setup & Software”, choose the “Connect a new printer” option



Connection Options

As we are connecting over a wireless network, we chose the “Wireless – Connect the printer to your wireless network and internet“.



Network Check

As we chose to go the Wireless route, the system scans the network for our printer.





Network Printer Installation

In the preceding page, we chose our printer and clicked the Next button.





Successful Network Installation

We were able to successfully install the Software.





SQL Server – BCP – Memory Constraints


As a follow-up to a recent post titled “SQLServer – BCP Optimization via Running Multiple Instances in Parallel ”  ( https://danieladeniji.wordpress.com/2015/07/22/sqlserver-bcp-optimization-via-running-multiple-instances-in-parallel/ ), let us see what happens on the DB Server has one pushes it a bit.


Activity Manager




  • We can see that we are really waiting on Memory




  • A more granular view that shows the same thing; as it indicates that our individual BCP requests are suspended as they wait for their memory requests to be fulfilled


Running Adam Machanic’s shows..



  1. No Blocking Sessions
  2. Relative to writes, a lot of reads on the active BCP sessions
  3. Other BCP Sessions are waiting on RESOURCE_SEMAPHORE

Dynamic Management Views


Let us do a little bit more work.

Not that much more as it is Friday, and so we will just align memory requests to the correspondent session’s query.


          [sqlText] = dmvESQT.[text]
        , dmvDMEQMG.session_id
        , dmvDMEQMG.request_time
        , dmvDMEQMG.grant_time
        , [waitInMinutes] =
                when dmvDMEQMG.grant_time is null then
                   datediff(minute, dmvDMEQMG.request_time, getdate())
                then null
        , dmvDMEQMG.requested_memory_kb
        , requested_memory_mb = (dmvDMEQMG.requested_memory_kb / 1024)
        , dmvDMEQMG.granted_memory_kb
        , dmvDMEQMG.required_memory_kb
        , dmvDMEQMG.used_memory_kb
        , dmvDMEQMG.max_used_memory_kb
        , dmvDMEQMG.query_cost
        , dmvDMEQMG.resource_semaphore_id
        , dmvS.login_name

FROM sys.dm_exec_query_memory_grants dmvDMEQMG

    LEFT OUTER JOIN sys.dm_exec_sessions dmvS

       ON dmvDMEQMG.session_id = dmvS.session_id

    outer apply sys.dm_exec_sql_text(dmvDMEQMG.sql_handle) dmvESQT




  • Memory Requested
    • We can see that depending on the targeted table and size of the data feed, the requested memory and the query cost varies a bit
    • We can also see that the requested memory, in our case, is about 885 MB; a little below 1 GB
    • Once we take into account this request is for each BCP session, we need a few few GBs of unused memory to simultaneously service our concurrent requests


Let us see what types of locks are being acquired.


set transaction isolation level read uncommitted;


         , lck.request_mode
         , lck.request_status
         , dmvS.login_name
         , lck.request_session_id
         , par.object_id
         --, object_schema_name(par.object_id) as schhemaName
         --, object_name(par.object_id) as objectName
         , [schema] = [schema].name
         , objectName = obj.name
         , COUNT(*) number_locks

FROM sys.dm_tran_locks lck with (nolock)

        INNER JOIN sys.partitions par  with (nolock)

           ON lck.resource_associated_entity_id = par.hobt_id

        INNER JOIN sys.objects obj  with (nolock)

            ON par.object_id = obj.object_id

        INNER JOIN sys.schemas [schema] with (nolock)

            ON obj.schema_id = [schema].schema_id

        INNER JOIN sys.dm_exec_sessions dmvS  with (nolock)

            ON lck.request_session_id = dmvS.session_id

where  [schema].[name] not in ('sys')

            , lck.request_mode
            , lck.request_status
            , dmvS.login_name
            , lck.request_session_id
            , par.object_id
            , [schema].name
            , obj.name 




  • It looks like though we requested Table Locks, we are getting more granular locks; in this case PAGE LOCKS


Again, I will suggest that you have yourself a nice LAB to tinker with things.

Your DBA might not grant your request for “VIEW SERVER STATE“.

But, nevertheless find a way around and earn your “Come up“.


Dedicating Sarah McLachlan’s Shipwreck to the beautiful warriors, Jillian Johnson and Mayci Breaux, who “laid down” viewing the movie Train Wreck in New Orleans last night.

Lupe Fiasco – “The Come Up”


Again, it has been that kind of a couple of weeks….

Here is Lupe’s Take


To rappers from a rapper…simply write your own rhymes as much as you can if you are able. Ghostwriting, or borrowing lines, or taking suggestions from the room has always been in rap and will always be in rap.

It is nothing to go crazy over or be offended about unless you are someone who postures him or herself on the importance of authenticity and tries to portray that quality to your fans or the public at large. Then we might have a problem.

Some of the most pivotal moments in rap have been ghostwritten verses.

This leads to a bigger point.

Rapping is not an easy thing to do. It’s takes years of work and trail and error to master some of its finer points. Respect from other MC’s comes in many formats. Sales, live performances, realness etc but the one thing that is the most important is the raps themselves at least in the eyes of other serious rappers.

The phrase “I’m not a rapper” gets thrown around as if it’s a badge of honor. And that’s fine. If rap is a side hustle for you or just a come up then by all means may the force be with you.

But I know a lot of MC’s where rap is the first love and the first thing they think about when they wake up and the last thing they think about when they go to sleep.

Rappers who pursue the art form with this level of intention may not become rich and famous off selling their raps to a wide audience but that has never been an accepted metric to begin with in terms of quality or level of skill.

The vast majority of rappers will never sell 100 records in their lifetimes let alone millions. But that’s not the point, the point is that what pursuing the craft gives us in terms of the intangibles is something that record sales or fame could never represent. We achieve a mastery of language and poetics that competes on the highest levels of discourse across the entirety of human history. We express ourselves creatively and attain a sense of liberation and self-esteem via this sacred mode of creation and communication.

Page 2

Modern Radio and the commercial realm of music has injured rap. It set up ambiguous rules and systems for success that don’t take into consideration the quality and skill of the rappers craft.

It redefined rap as just a being beat driven hook with some words in between and an entire generation has surrendered to chasing the format instead of chasing the art form.

While mastering any format should be the pursuit of any self-respecting rapper including the commercial format it must be kept clear that it is just one of many formats and that you should strive to master all of them.

The art form is kept alive and progressive in the activities of the tens of thousands of rappers around the world who are everyday trying to think of that next witty bar. Trying to put that crazy verse together while at work. Trying to find that word that rhymes with catapult so they can finish off that vivid story rap about their childhood.

Meek Mill struck a nerve accusing Drake of having a ghostwriter and the entire rap world reacted on all sides of the fence because rap is alive. It’s active and it feels.

Its rules and traditions are vibrant and responsive. I enjoy both these brothers music and find inspiration and appreciation from both of them.

I remember being in Toronto at Goodfoot years ago and it was a stack of CD’s on the counter and the guy behind the counter was like “Lupe you gotta take this CD.  It’s my mans mixtape.”

I didn’t really pay it any mind I took it to the car and looked it over and just kind of set it aside focused on other things. I vividly remember saying “what kind of rap name is Drake?” The rest is history.

Once while in Philly I went to do an interview in a shabby and very hood basement studio complex. I peeked into one of the rooms and it was this tall kid with his shirt off bouncing up and down in the booth with an energy that was electric. I gave him my regards. He gave them back. I think I mentioned something about him cutting his dreads. As I left I remember him rapping something about being a boss. The rest is history.

At the end of the day, for better or worse, rap is alive even if some of its greatest moments are written by ghosts.

Video & Lyrics

Lupe – The End of the World – Video

Lupe – The End of the World – Lyrics


Oprah Winfrey

You ‘re built not to shrink down to less, but to blossom into more

Gossip means we haven’t emboldened ourselves to talk directly to the people we take issues with 

50 Cents

I always ask people about their bad experiences, for some reason they will offer you more details. I think it is internally, their connection to the painful portion of it.  They will give you a blueprint of what not to do consistently.  ( Interview )

Boy George

What’s really sad is that a lot of very talented people are being forced to do things that are very embarrassing and I don’t intend to be one of them.

I don’t want to be a figure of disappointment.

I’ve had to write in a different way because I’m not in a bad place and I’m not heartbroken, so there’s no one I want revenge on.

Ravi Zacharias

Where destruction is the motive, unity is dangerous. Where good is the motive, unity is phenomenal

John C. Lennox

We thought we could get rid of God and retain a value for human beings. We were wrong. We destroyed both God and man.


Here is my take.  I hope someone tried to take something from you this week. And, it made you so mad, you recommitted.

Some people think they deserve the “take down”.

So here is to bowing low to group prayer, shedding light on the gossip, finding an honest way out, getting stronger, and starting the heal.