ETL job fails with: Invalid object name 'dbo.incomingbuffer'

ETL job fails with: Invalid object name 'dbo.incomingbuffer'

Solution
Important Before following this article, please ensure that you have performed a full backup of your SQL databases. If you are unsure on how to do this, please review Microsoft's article Create a Full Database Backup (SQL Server).

Why does this issue occur?
This issue normally occurs when the HDD partition that the database is attached to runs out of disk space. Since Forcepoint continuously drops and re-creates these tables, once dropped it cannot recreate it if there is no disk space available. 

This can also occur if:
  • Microsoft Updates restart the machine while the Maintenance Job is running.
  • The Maintenance Job recreates these tables during its process run and a machine or SQL restart can interrupt this process.
  • This results in the tables not being recreated and data insertion and ETL Jobs to subsequently fail.

This article is split in to 3 sections:
  • Identify the issue: SQL Agent
  • Identify the issue: SQL Broker
  • Resolve the issue

SQL Agent is available in Enterprise and Standard versions of SQL Management Studio. If you are using SQL Express then SQL Agent is disabled and it is likely you are using SQL Broker instead. If you are unsure as to which version you are using you can run the query: SELECT @@version

Identify the issue: SQL Agent
  1. Load SQL Management Studio and login.
  2. Locate the SQL Server Agent in the left hand pane and open the Job Activity Monitor.
View Job Activity
  1. If the AMT_ETL or ETL jobs are failing, right click one of them and select view history.
View History
  1. Expand the job failure to review Step ID 1. You should see the error “Invalid object name ‘dbo.incomingbuffer'" or similar.
View Step ID
  1. Make a note of the missing object. In this case it is dbo.incomingbuffer, but the options include:
    • dbo.incomingbuffer
    • dbo.ua_incomingbuffer
    • dbo.wtg_incomingbuffer
    • dbo.hosted_incomingbuffer
    • dbo.casb_incomingbuffer

Identify the issue: SQL Broker
  1. Run the query to see which jobs are running: SELECT * from wse_sb_scheduled_jobs
Select Broker Jobs
  1. Compare the job name with the last_runon field. ETL and AMT_ETL should run every 20 seconds by default; the others are much less often.
  2. If AMT_ETL or ETL are not running, run the following query: SELECT * FROM wse_error_logs order by WSE_error_log_id desc
Broker Error
You should see the error “Invalid object name ‘dbo.incomingbuffer’ or similar.
  1. Make a note of the missing object. In this case it is dbo.incomingbuffer, but the options include:
    • dbo.incomingbuffer
    • dbo.ua_incomingbuffer
    • dbo.wtg_incomingbuffer
    • dbo.hosted_incomingbuffer
    • dbo.casb_incomingbuffer



Resolve the issue:
Note The examples in the rest of this article will refer to dbo.incomingbuffer, but make sure you adjust it as necessary to apply to your missing table.
  1. Attempt to locate the missing table in Databases > wslogdb70 > Tables. In this example, we can see ‘dbo.incomingbuffer_offline’ but not ‘dbo_incomingbuffer’.
Table missing
  1. Right click dbo.incomingbuffer_offline, navigate to Script Table as > Create To > New Query Editor Window.
New Query
  1. Locate both references to [dbo].[incomingbuffer_offline] and remove the _offline so it reads [dbo].[incomingbuffer].
  2. Delete the [wse_domain_id] [int] NULL line at the end of the script. 
  3. When finished, the script should look like:
BeforeAfter
USE [wslogdb70]
GO

/****** Object:  Table [dbo].[incomingbuffer_offline]    Script Date: 12/13/2018 15:06:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[incomingbuffer_offline](
    [source_server_ip] [bigint] NULL,
    [date_time] [datetime] NOT NULL,
    [disposition_code] [smallint] NULL,
    [source_ip] [bigint] NULL,
    [destination_ip] [bigint] NULL,
    [protocol_name] [nvarchar](255) NULL,
    [url] [nvarchar](255) NULL,
    [url_file_path] [nvarchar](1000) NULL,
    [url_file_ext] [nvarchar](255) NULL,
    [port] [int] NULL,
    [category] [int] NULL,
    [file_type_name] [nvarchar](255) NULL,
    [bytes_sent] [int] NULL,
    [bytes_received] [int] NULL,
    [duration] [int] NULL,
    [keyword] [nvarchar](255) NULL,
    [hits] [int] NULL,
    [user_path_namespace] [nvarchar](50) NULL,
    [user_path_catalog_server] [nvarchar](50) NULL,
    [user_path_domain] [nvarchar](425) NULL,
    [user_path_login_name] [nvarchar](255) NULL,
    [source_ip_bin] [varbinary](16) NULL,
    [destination_ip_bin] [varbinary](16) NULL,
    [transaction_id] [varbinary](16) NULL,
    [client_hostname] [nvarchar](450) NULL,
    [ua_id] [bigint] NULL,
    [wtg_analytic_id] [smallint] NULL,
    [wtg_content_stripping_id] [smallint] NULL,
    [wtg_file_type] [nvarchar](64) NULL,
    [wtg_file_name] [nvarchar](128) NULL,
    [wtg_reason_type] [int] NULL,
    [wtg_reason] [nvarchar](128) NULL,
    [hybrid] [smallint] NULL,
    [casb_id] [bigint] NULL,
    [policy_name] [nvarchar](128) NULL,
    [wse_user_role_id] [int] NULL,
    [wse_domain_id] [int] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO
USE [wslogdb70]
GO

/****** Object:  Table [dbo].[incomingbuffer_offline]    Script Date: 12/13/2018 15:06:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[incomingbuffer](
    [source_server_ip] [bigint] NULL,
    [date_time] [datetime] NOT NULL,
    [disposition_code] [smallint] NULL,
    [source_ip] [bigint] NULL,
    [destination_ip] [bigint] NULL,
    [protocol_name] [nvarchar](255) NULL,
    [url] [nvarchar](255) NULL,
    [url_file_path] [nvarchar](1000) NULL,
    [url_file_ext] [nvarchar](255) NULL,
    [port] [int] NULL,
    [category] [int] NULL,
    [file_type_name] [nvarchar](255) NULL,
    [bytes_sent] [int] NULL,
    [bytes_received] [int] NULL,
    [duration] [int] NULL,
    [keyword] [nvarchar](255) NULL,
    [hits] [int] NULL,
    [user_path_namespace] [nvarchar](50) NULL,
    [user_path_catalog_server] [nvarchar](50) NULL,
    [user_path_domain] [nvarchar](425) NULL,
    [user_path_login_name] [nvarchar](255) NULL,
    [source_ip_bin] [varbinary](16) NULL,
    [destination_ip_bin] [varbinary](16) NULL,
    [transaction_id] [varbinary](16) NULL,
    [client_hostname] [nvarchar](450) NULL,
    [ua_id] [bigint] NULL,
    [wtg_analytic_id] [smallint] NULL,
    [wtg_content_stripping_id] [smallint] NULL,
    [wtg_file_type] [nvarchar](64) NULL,
    [wtg_file_name] [nvarchar](128) NULL,
    [wtg_reason_type] [int] NULL,
    [wtg_reason] [nvarchar](128) NULL,
    [hybrid] [smallint] NULL,
    [casb_id] [bigint] NULL,
    [policy_name] [nvarchar](128) NULL,
    [wse_user_role_id] [int] NULL,
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO
  1. Click Execute to run the query. This should re-create the dbo.incomingbuffer table.
  2. Refresh the database and attempt to search for the table again, as we did in step 1.
Table appeared
  1. Return to the Job Activity Monitor and we should see the job now running. It is entirely normal for this to occur for multiple tables, so you may need to repeat these steps an additional 1 or 2 times for different table names.
Jobs Success

If you've followed the above steps, all the dbo.*incomingbuffer tables exist and you are longer receiving the error Invalid object name 'dbo.incomingbuffer' but logs are still not moving to your database, you may want to review the below article on troubleshooting Logging: Reports have no data or no recent data and Log Server is not logging data
    • Related Articles

    • Registering Email Appliances with Data Security fails

      Summary For registration to work, check password and ports between Forcepoint Email Security Manager Server and Email Security Gateway. Notes and Warnings Once Data Security has successfully registered, Forcepoint Email Security Gateway will start ...
    • DLP Endpoint DebugDump Filled With "Got invalid local time" Messages

      Summary This article addresses the issue of the DebugDump filled with "Got invalid local time" sessages Problem On an environment with scheduled Endpoint Discovery scans, the DebugDump.txt logs fill with messages such as the following prior to the ...
    • More than 100 files in the Log Server cache directory

      Normally, Log Server ODBC cache files or BCP files are moved to the Log Database at a steady rate. If temporary files are accumulating on the Log Server machine, current Internet usage information is not being sent to the Log Database and, with ...
    • Forcepoint NGFW Security Management Center 6.10.x Resolved and Known Issues

      Summary Resolved and known issues for Forcepoint NGFW Security Management Center (SMC) 6.10 releases. Problem This article is divided into two sections: Known Issues – Important information about known issues of high or medium rating that are ...
    • Troubleshooting Forcepoint ONE's Active Directory Sync Agent

      Summary Solutions to common troubleshooting scenarios with AD sync Agent Problem The Bitglass DirSync AD Agent is a program that syncs Active Directory users to the Forcepoint ONE user database. An AD user (typically an admin) would download the tool ...